假设我们有一个包含一些子目录的项目,我们需要在其子目录之一中生成 .cpp 和 .h 文件。真实的事实:如果我们在该目录中运行命令(不带 < 和 >),它会生成有效文件。
那么如何使用 cmake 做同样的事情呢?
Cmake 有 add_custom_command,但它什么也没做,所以我们不能使用它。execute_process 更好,因为它运行一些东西,但是以错误的方式。
execute_process(COMMAND "protoc -I=\".\" --cpp_out=\".\" protocol.proto"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
不幸的是,结果什么也没有,因为 cmake 无法正确运行命令,所以“protoc”打印“没有这样的文件或目录”。
添加/编辑:此 execute_process 调用位于 CMakeLists.txt 中,该文件与 protocol.proto 文件位于同一目录中
为什么它不能简单地运行这个命令?