You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过CMake仅将项目生成的可执行文件输出到指定/bin目录?

解决CMake仅自定义可执行文件输出目录的问题

你之前用的CMAKE_RUNTIME_OUTPUT_DIRECTORY和EXECUTABLE_OUTPUT_PATH都是全局变量,会作用于项目中所有生成的目标——包括你引入的第三方库或子模块库,所以这些库的二进制文件也会被放到/bin目录下。要只让自己项目的可执行文件输出到指定目录,得针对单个目标单独配置:

  1. 先移除全局的输出目录设置,删除这两行:

    SET( EXECUTABLE_OUTPUT_PATH ${dir}/bin )
    set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin )
    
  2. 针对你自己项目的每个可执行目标,用set_target_properties单独指定输出目录:
    假设你的可执行目标名为my_app,代码示例如下:

    # 先定义你的可执行目标
    add_executable(my_app src/main.cpp)
    
    # 为该目标单独设置输出目录
    set_target_properties(my_app PROPERTIES
        # 单配置生成器(如Makefile)的基础输出目录
        RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin"
        # 多配置生成器(如Visual Studio)可分别指定不同配置的目录
        RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/bin/Debug"
        RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/bin/Release"
    )
    

如果你的项目有多个自定义可执行目标,重复上述set_target_properties步骤即可。这样配置后,只有你自己定义的可执行文件会输出到/bin目录,依赖库的二进制文件会保留在它们默认的输出位置。

内容的提问来源于stack exchange,提问作者Turgut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 20:40:31