将二进制文件放在CMake中的哪里?

the*_*one 6 cmake

在我的项目中,所有源代码都驻留在名为"src"的文件夹中.在我的项目根目录中有一个CMakeLists.txt文件(在"src"之上),但它只是声明项目并包含"src"子目录.src下的CMakeLists.txt文件可以完成所有工作,包括"add_binary".

(这是一种常见的方式,还是应该将所有智能放在根级别的CMakeLists.txt文件中?)

如果我现在构建项目,我的二进制文件放在src文件夹中,但这没有多大意义,我宁愿把它放在根文件夹或专用的"bin"文件夹中.

你怎么做到这一点?

ric*_*chq 6

如果要将所有可执行文件放在名为"bin"的子目录中,则可以使用顶部CMakeLists.txt文件中的以下行:

SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
Run Code Online (Sandbox Code Playgroud)

只需删除/bin,将在根目录中创建可执行文件.库中存在类似的变量:CMAKE_LIBRARY_OUTPUT_DIRECTORY.

PS.添加每个目录逻辑很好.这似乎是做事情和保持良好组织的常用方式.