【问题标题】:Compile protobuf to python, cmake command将protobuf编译成python,cmake命令
【发布时间】:2018-02-24 19:59:49
【问题描述】:

我有一些编译成 cpp 的原型定义。
要生成相应的 make 目标,我使用 cmake,如下所示:
protobuf_generate_cpp(CPP_SOURCES PROTO_HEADERS ${PROTO_FILES})
我使用CPP_SOURCES 来构建我的库。

现在我还需要为 python 编译相同的 proto 文件,我添加了这个:
protobuf_generate_python(PY_SOURCES ${PROTO_FILES})
仅此一项没有任何效果,我不确定我应该/可以添加更多内容以便有一些 make 目标也会触发 python

protoc >

【问题讨论】:

  • protobuf_generate_python 确实存在于FindProtobuf.cmake 中,所以也许你没有正确使用它?
  • 是的,它确实存在,不是它给出和错误,而是它没有效果。在将生成的 python 源添加到我的 cpp 库目标后,我实际上注意到它可以工作,这很奇怪。也许我可以添加一个非二进制目标来将 python 源传递给?
  • 请提供a minimal, complete and verifiable example for your problem。你贴的代码没有问题,所以问题一定出在其他地方。

标签: python cmake protocol-buffers


【解决方案1】:

您已经回答了您的问题,但这里有一个完整的答案。

protobuf_generate_python() 函数添加了一个custom command。要触发命令,您需要定义一个目标。所以像这样添加add_custom_target()

add_custom_target(myTarget ALL 
                  DEPENDS ${PY_SOURCES})

【讨论】:

    猜你喜欢
    • 2021-09-06
    • 1970-01-01
    • 2011-03-23
    • 2010-10-12
    • 1970-01-01
    • 2021-11-04
    • 2020-09-16
    • 1970-01-01
    • 2021-03-12
    相关资源
    最近更新 更多