Cmake 使用Make multi-threaded时强制PROTOBUF_GENERATE_CPP完成
给定一个简单的cmake文件,例如Cmake 使用Make multi-threaded时强制PROTOBUF_GENERATE_CPP完成,cmake,protocol-buffers,Cmake,Protocol Buffers,给定一个简单的cmake文件,例如 PROTOBUF_GENERATE_CPP(ProtoSources ProtoHeaders Example.proto) 添加库(Example SHARED Example.cpp) 使用make-j8时,是否有办法强制PROTOBUF_GENERATE_CPP在下一步开始之前完成 (上下文:在cmake文件上使用cmake..make-j8时,第一次运行几乎总是失败,因为在编译库时protobuf文件尚未完成处理。第二次运行总是可以正常运行,但最好避免
PROTOBUF_GENERATE_CPP(ProtoSources ProtoHeaders Example.proto)
添加库(Example SHARED Example.cpp)
使用make-j8
时,是否有办法强制PROTOBUF_GENERATE_CPP在下一步开始之前完成
(上下文:在cmake文件上使用
cmake..make-j8
时,第一次运行几乎总是失败,因为在编译库时protobuf文件尚未完成处理。第二次运行总是可以正常运行,但最好避免每次运行make两次。)我假设“示例”依赖于原型源和/或原型头。
否则构建顺序就无关紧要了
您需要告诉CMake“示例”和生成的文件之间存在依赖关系
尝试将这些行添加到脚本中
add_custom_target(generated_code DEPENDS ${ProtoSources} ${ProtoHeaders})
add_dependencies(Example generated_code)
这就是我需要的。非常感谢。