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

能否在CMake同一自定义目标中为不同命令设置不同工作目录?

为CMake自定义目标中的不同命令指定独立工作目录

完全可以仅通过CMake实现需求。CMake的add_custom_target支持为每条COMMAND单独配置WORKING_DIRECTORY参数,无需全局统一设置工作目录。

修改你的自定义目标代码如下:

add_custom_target(run_projects
    COMMAND first_project &
    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}  # 为first_project指定根目录作为工作目录
    COMMAND second_project
    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/second_project  # 为second_project指定子目录作为工作目录
    COMMAND killall first_project &> /dev/null &
    COMMAND killall second_project &> /dev/null
)

核心说明:

  • 每条COMMAND后紧跟的WORKING_DIRECTORY仅对当前命令生效,不会影响其他命令的工作路径。
  • 全局的WORKING_DIRECTORY会作为未单独配置的命令的默认路径,这里我们给两个可执行程序分别指定路径后,无需保留全局设置。
  • killall命令的工作目录不影响其功能,因此无需额外配置。

修改后,first_project会在项目根目录运行,可正常访问resources/下的资源;second_project会在${PROJECT_SOURCE_DIR}/second_project目录运行,对应访问second_project/resources/下的资源。

内容的提问来源于stack exchange,提问作者a.wise

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 13:43:10