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

如何在VS Code+CMakeTools中调整可执行文件输出或运行目录?

CMake项目在VS Code里指定可执行文件位置或运行目录的方法

需求1:把可执行文件输出到非构建目录并运行

直接修改CMakeLists.txt即可,CMake自带输出路径配置:

  • 给单个目标设置路径:用set_target_properties指定RUNTIME_OUTPUT_DIRECTORY,比如你的可执行目标叫MyApp:
add_executable(MyApp main.cpp)
# 将可执行文件输出到项目根目录的bin文件夹
set_target_properties(MyApp PROPERTIES
    RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin"
)
  • 全局设置所有目标:如果项目有多个可执行文件,直接全局配置输出路径:
# 所有可执行文件统一输出到项目根目录的bin目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")

修改后,CMakeTools构建时会自动把可执行文件放到指定目录,之后在VS Code的运行配置中指向这个路径的可执行文件就能直接运行。

需求2:保留可执行文件在构建目录,但指定运行时的工作目录

修改VS Code的launch.json配置,添加cwd字段指定工作目录:

  1. 打开运行和调试面板,点击「创建launch.json文件」,选择C++相关的模板
  2. 在生成的配置中加入cwd字段,填写你需要的工作目录,比如项目根目录:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "CMake: MyApp",
            "type": "cppdbg",
            "request": "launch",
            "program": "${command:cmake.launchTargetPath}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}", // 这里填写目标工作目录,比如项目根目录
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "${command:cmake.build}"
        }
    ]
}

这样启动运行或调试时,程序会从cwd指定的目录读取资源、输出文件,可执行文件本身仍留在构建目录中。

如果你习惯使用CMakeTools的「Run」按钮,也可以在.vscode/settings.json里全局配置工作目录:

{
    "cmake.debugConfig": {
        "cwd": "${workspaceFolder}/data" // 填写目标工作目录
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 20:15:38