cmake autogen
时间: 2023-08-01 08:11:02 浏览: 82
你可以使用CMake来自动生成构建系统所需的文件。为了生成构建文件,你可以按照以下步骤进行操作:
1. 创建一个名为`CMakeLists.txt`的文件,并将其放置在你的项目根目录下。
2. 在`CMakeLists.txt`文件中,编写你的项目的构建规则和依赖项。
3. 打开终端或命令提示符,并导航到你的项目根目录。
4. 运行以下命令来生成构建文件:
```
cmake .
```
这将基于`CMakeLists.txt`文件生成默认的构建系统文件(如Makefile或Visual Studio解决方案)。
5. 运行适合你的构建系统的命令来构建你的项目。例如,在使用Makefile的情况下,可以运行以下命令:
```
make
```
这样,CMake将会根据你在`CMakeLists.txt`文件中定义的规则自动生成构建系统所需的文件,并帮助你构建你的项目。
相关问题
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 生成的文件,而不需要手动编译它们。
set_property(SOURCE ${PROTO_SRCS} ${PROTO_HDRS} PROPERTY SKIP_AUTOGEN ON)
这段代码是用于在使用 Protocol Buffer 生成的源文件和头文件时,让 CMake 不再自动运行编译器来生成这些文件。
Protocol Buffer 是一种用于序列化结构化数据的语言和工具,它可以自动生成对应的源代码,用于将数据进行编码和解码。在使用 Protocol Buffer 时,我们需要用 protobuf 编译器将 .proto 文件编译成对应的源文件和头文件,然后将它们编译进我们的项目中。
在 CMake 中,如果我们添加了这些源文件和头文件,CMake 会默认执行 protobuf 编译器来生成这些文件,但是如果我们已经手动执行了编译器并将生成的文件加入到项目中,那么这些自动生成的代码就会被覆盖掉,这样就会出现编译错误。
因此,使用 `set_property(SOURCE ... PROPERTY SKIP_AUTOGEN ON)` 可以告诉 CMake 不再自动运行编译器来生成这些文件,从而避免出现这种问题。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)