set_property(SOURCE ${PROTO_SRCS} ${PROTO_HDRS} PROPERTY SKIP_AUTOGEN ON)
时间: 2023-12-19 09:04:31 浏览: 112
这段代码是用于在使用 Protocol Buffer 生成的源文件和头文件时,让 CMake 不再自动运行编译器来生成这些文件。
Protocol Buffer 是一种用于序列化结构化数据的语言和工具,它可以自动生成对应的源代码,用于将数据进行编码和解码。在使用 Protocol Buffer 时,我们需要用 protobuf 编译器将 .proto 文件编译成对应的源文件和头文件,然后将它们编译进我们的项目中。
在 CMake 中,如果我们添加了这些源文件和头文件,CMake 会默认执行 protobuf 编译器来生成这些文件,但是如果我们已经手动执行了编译器并将生成的文件加入到项目中,那么这些自动生成的代码就会被覆盖掉,这样就会出现编译错误。
因此,使用 `set_property(SOURCE ... PROPERTY SKIP_AUTOGEN ON)` 可以告诉 CMake 不再自动运行编译器来生成这些文件,从而避免出现这种问题。
相关问题
set_property(SOURCE ${PROTO_SRCS} ${PROTO_HDRS} PROPERTY SKIP_AUTOGEN ON) 这句话什么意思
这句话是 CMakeLists.txt 文件中用于设置某些源文件的属性。其中,`SOURCE` 指定需要设置属性的源文件,`${PROTO_SRCS}` 和 `${PROTO_HDRS}` 是变量,表示生成的 protobuf 源文件和头文件。
`SKIP_AUTOGEN` 是一个属性,它表示是否跳过自动生成过程。在这里,这个属性被设置为 `ON`,表示不需要再次执行自动生成的过程,因此会跳过这个步骤,直接使用已经生成的源文件和头文件。
简单来说,这句话的作用是告诉 CMake 不要再次自动生成 protobuf 的源文件和头文件,直接使用已经生成好的文件。
set_property(SOURCE ${PROTO_SRCS} ${PROTO_HDRS} PROPERTY SKIP_AUTOGEN OFF) 这句话什么意思
这句话是 CMake 语法中的一行命令,它用于设置指定源文件的属性。具体来说,这句命令将指定的源文件(即 `${PROTO_SRCS}` 和 `${PROTO_HDRS}`)的 `SKIP_AUTOGEN` 属性设置为 `OFF`。
`SKIP_AUTOGEN` 属性是由 CMake 自动为 protobuf 生成的 C++ 文件设置的一个属性,它表示该文件是否应该被自动编译。当该属性为 `ON` 时,CMake 将不会自动编译该文件,而是要求用户手动编译它。相反,当该属性为 `OFF` 时,CMake 将会自动编译该文件。
在这个命令中,将 `SKIP_AUTOGEN` 属性设置为 `OFF`,意味着告诉 CMake 自动编译这些 protobuf 生成的文件,而不需要手动编译它们。
阅读全文