cmake 编译当前目录下的所有cpp文件
时间: 2023-07-12 10:46:11 浏览: 256
你可以使用以下CMake代码来编译当前目录下的所有cpp文件:
```
cmake_minimum_required(VERSION 3.0)
project(my_project)
file(GLOB SOURCES "*.cpp")
add_executable(my_executable ${SOURCES})
```
这里,我们使用`file(GLOB SOURCES "*.cpp")`命令来获取当前目录下所有cpp文件的列表,并将其存储在名为`SOURCES`的变量中。接下来,我们使用`add_executable`命令来创建可执行文件,并将所有cpp文件作为源文件添加到该可执行文件中。
请注意,使用`file(GLOB ...)`命令存在一些潜在的问题,因为它只会在CMake生成构建系统时执行一次。如果您随后添加或删除cpp文件,则必须手动重新运行CMake以更新文件列表。如果您的项目足够小,那么手动列出每个源文件可能会更好。
相关问题
如何使用cmake编译cpp
使用 CMake 编译 C++ 程序的步骤如下:
1. 在你的项目根目录下创建一个名为 CMakeLists.txt 的文件。
2. 在 CMakeLists.txt 文件中设置 CMake 版本和项目名称。
3. 使用 add_executable 命令将你的源文件添加到项目中。
4. 使用 target_link_libraries 命令将需要的库链接到项目中。
5. 在命令行中进入项目目录,并执行以下命令:
```
mkdir build
cd build
cmake ..
make
```
6. 编译完成后,在 build 目录下可以找到可执行文件。
注意:执行以上步骤前需要安装 cmake 工具。
qt使用cmake编译,将自动生成的文件放于同意目录下
在使用CMake构建Qt项目时,自动生成的文件通常位于构建目录中,而不是源代码目录中。这些文件包括MOC(元对象编译器)生成的源代码、UI文件生成的头文件和资源文件生成的C++文件等。
为了将这些文件放置在源代码目录中,可以使用CMake的`configure_file`命令。该命令可以将一个文件从一个位置复制到另一个位置,并在复制过程中执行一些配置操作。例如,可以使用以下命令将MOC生成的源代码从构建目录复制到源代码目录:
```
configure_file(${CMAKE_CURRENT_BINARY_DIR}/moc_source.cpp ${CMAKE_CURRENT_SOURCE_DIR}/moc_source.cpp COPYONLY)
```
其中,`${CMAKE_CURRENT_BINARY_DIR}`表示当前构建目录的路径,`${CMAKE_CURRENT_SOURCE_DIR}`表示当前源代码目录的路径。`COPYONLY`选项指示`configure_file`命令仅复制文件,而不执行任何配置操作。
同样的方法也适用于将UI文件生成的头文件和资源文件生成的C++文件复制到源代码目录中。
阅读全文