在CMake中应该把二进制文件放在哪里?

8
在我的项目中,所有的源代码都存放在一个名为“src”的文件夹中。在我的项目根目录(在“src”上方)中有一个CMakeLists.txt文件,但它只是声明了项目并包含了“src”子目录。位于src下的CMakeLists.txt文件完成所有工作,包括“add_binary”。
(这是一种常见的做法吗,还是应该将所有智能放在根级别的CMakeLists.txt文件中?)
如果我现在构建项目,我的二进制文件会被放置在src文件夹中,但这没有太多意义,我更希望它在根文件夹或专用的“bin”文件夹中。
你如何做到这一点?
1个回答

7
如果你想把所有可执行文件放在名为“bin”的子目录中,那么你可以在顶层的CMakeLists.txt文件中使用以下代码行:
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")

只需删除 /bin,可将可执行文件创建在根目录中。类似的变量也适用于库:CMAKE_LIBRARY_OUTPUT_DIRECTORY
另外,添加每个目录的逻辑也是可以的。这似乎是通常的做法,可以使事情保持良好的组织结构。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接