CMake Visual Studio“Debug”文件夹

5
Visual Studio 坚持在使用 CMake 时,必须将可执行文件创建在 bin/Debug/ 而不是仅在 bin/ 中。 有没有办法解决这个问题?
1个回答

4

是的,但不是很好看......

您需要更新所有目标的RUNTIME_OUTPUT_DIRECTORYLIBRARY_OUTPUT_DIRECTORYARCHIVE_OUTPUT_DIRECTORY属性。而且,您需要为每个配置(Debug、RelWithDebInfo 等)都这样做。

最简单的方法是使用它们的 CMAKE_... 对应项对此进行“全局”设置。例如,检查以下示例,将bin/和lib/设置为“全局”二进制库输出目录:

# First for the generic no-config case (e.g. with mingw)
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib )
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib )
# Second, for multi-config builds (e.g. msvc)
foreach( OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES} )
    string( TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG )
    set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/bin )
    set( CMAKE_LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/lib )
    set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/lib )
endforeach( OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES )

另外,您可以尝试运行所有可用的目标,并随后修改其属性...

请注意,这不会设置您的.pdb文件的位置。我仍然没有找到一种令人满意的方法来将所有相关的.pdb文件放在bin/目录中。


有没有一种方式,即使不是很满意,也可以将pdb文件放在bin/目录中? - Jookia
不,除非你自己动手:我还没有这样做,但正在考虑运行一个后构建脚本,将“*.pdb”(也许是从目标列表中选择的那些)“复制”到 bin 目录中... 但它实际上并不具备可扩展性。 - André
好吧,也许我会尝试去做那个。我稍后会测试一下,希望能够成功。 - Jookia

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