Build cmake项目只生成一个特定的可执行文件(及其依赖项)
我有一个CMake项目,其结构大致如下:Build cmake项目只生成一个特定的可执行文件(及其依赖项),build,cmake,build-target,Build,Cmake,Build Target,我有一个CMake项目,其结构大致如下: . |-- library1 | |-- CMakeLists.txt |-- library2 | |-- CMakeLists.txt |-- executables | |-- CMakeLists.txt 在可执行文件中我生成了两个可执行文件。我想知道是否可能只生成一个可执行文件及其依赖项而不是全部。我听说了一些关于cmake--target选项的信息,但我无法让它与cmake/3.13.4一起使用,这里有几个潜在的问题。首先,典型
.
|-- library1
| |-- CMakeLists.txt
|-- library2
| |-- CMakeLists.txt
|-- executables
| |-- CMakeLists.txt
在
可执行文件中
我生成了两个可执行文件。我想知道是否可能只生成一个可执行文件及其依赖项而不是全部。我听说了一些关于cmake--target
选项的信息,但我无法让它与cmake/3.13.4
一起使用,这里有几个潜在的问题。首先,典型的CMake工作流将build
文件夹作为顶级CMake文件的同级文件夹。因此,您的文件层次结构应该如下所示:
.
|-- CMakeLists.txt
|-- library1
| |-- CMakeLists.txt
|-- library2
| |-- CMakeLists.txt
|-- executables
| |-- CMakeLists.txt
|-- build <------------ Run CMake commands from here.
从build
目录。您必须确保将--build
标志指向build
文件夹,这次不是顶级CMake文件。此外,此命令中要指定的目标名称应与add_executable()
,而不是项目名称或其他任何内容中使用的目标名称匹配
build/CMakeCache.txt
),或者干脆删除build
文件夹,然后重新开始明确地说,您是否只想构建(即编译)一个可执行文件?还是只想(在CMake时间)配置/生成一个可执行文件?@kamil我在stackoverflow上读到了,但我丢失了链接。我尝试了
cmake--build--target target_name
但我收到了错误消息CMake error:源目录“/build/target_name”不存在。
@squareskittles我想编译可执行文件,但只编译一个我命名的可执行文件及其相关库。您的命令行在语法上看起来正确,但您的构建文件夹实际命名为build
?CMake是否为名为target\u name
的目标生成?如何配置CMake?--build
应该指向配置cmake的文件夹。
cmake --build . --target MyExecutable1