Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake 如何不将发布或调试添加到输出路径?_Cmake - Fatal编程技术网

Cmake 如何不将发布或调试添加到输出路径?

Cmake 如何不将发布或调试添加到输出路径?,cmake,Cmake,以下是我当前的输出设置: set( EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/bin") set( LIBRARY_OUTPUT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/bin") set( RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin") 但由于某些原因,我不希望(MSV)将文件放入bin文件夹中的bin/Release或Debug文

以下是我当前的输出设置:

set( EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/bin")
set( LIBRARY_OUTPUT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/bin")
set( RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin")
但由于某些原因,我不希望(MSV)将文件放入bin文件夹中的bin/Release或Debug文件夹。我能用CMake实现吗

谢谢

几个月前有人问我,我建议使用,也提到了。对于MSVC,您可以根据每个配置完全指定可执行文件、库、归档文件等的位置

例如,使用类似于:

if ( MSVC )
    set_target_properties( ${targetname} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${youroutputdirectory} )
    set_target_properties( ${targetname} PROPERTIES LIBRARY_OUTPUT_DIRECTORY_DEBUG ${youroutputdirectory} )
    set_target_properties( ${targetname} PROPERTIES LIBRARY_OUTPUT_DIRECTORY_RELEASE ${youroutputdirectory} )
    # etc for the other available configuration types (MinSizeRel, RelWithDebInfo)
endif ( MSVC )

这将把你所有的库放在一个输出目录${youroutputdirectory},不管它是在调试还是发布配置中。

在msvc 2015+中使用
cmake-G'Ninja'
你的版本对我来说很好,而添加了cmake的链接答案不起作用。(虽然库\输出\目录可以工作)。你知道为什么吗?对我来说,目标属性的问题似乎是我必须为每个子项目添加所有这些行,不是吗?