【问题标题】:How to not add Release or Debug to output path?如何不将发布或调试添加到输出路径?
【发布时间】:2012-01-13 09:20:11
【问题描述】:

这是我当前的输出设置:

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")

但出于某种原因,我不希望 (MSVS) 将文件放到我的 bin 文件夹中的 bin/Release 或 Debug 文件夹中。我能以某种方式使用 CMake 实现它吗?

谢谢

【问题讨论】:

    标签: cmake


    【解决方案1】:

    几个月前有人问过similar question,我建议使用target properties,也提到了another answer。对于 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} 中,无论是在调试配置还是发布配置中。

    【讨论】:

    • 您的版本对我来说效果很好,而添加了 CMAKE_ 的链接答案不起作用。 (虽然 LIBRARY_OUTPUT_DIRECTORY 有效)。你知道为什么吗?
    • 对我来说,目标属性的问题似乎是我必须为每个子项目添加所有这些行,不是吗?
    【解决方案2】:

    在 msvc 2015+ 中使用 cmake -G 'Ninja'

    【讨论】:

      猜你喜欢
      • 2014-11-17
      • 2021-02-25
      • 2013-07-09
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 2013-03-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多