【问题标题】:How to set working directory in CMake Visual Studio 2022?如何在 CMake Visual Studio 2022 中设置工作目录?
【发布时间】:2022-08-04 22:31:07
【问题描述】:

我在使用 CMake (Visual Studio 2022) 设置工作目录时遇到问题。

我目前正在研究一个项目(一些 OpenGL 学习内容),并决定从典型的 VS 解决方案项目切换到 CMake 项目。我需要从资源文件夹(LearnOpenGL/Resources),但我看到 C++ 代码中的路径是相对于LearnOpenGL/out/build/x64-Debug/.

我已经尝试过:

  • 设置属性 VS_DEBUGGER_WORKING_DIRECTORY 类似(也没有尾部斜杠):
set_property(TARGET LearnOpenGL PROPERTY VS_DEBUGGER_WORKING_DIRECTORY \"${CMAKE_SOURCE_DIR}/\")
  • 添加 \"currentDir\" 或 \"cwd\" 到CMakeSettings.json喜欢:
\"currentDir\": \"${projectDir}\"
\"cwd\": \"${projectDir}\"

但这些变化没有任何影响。有没有人有一些想法我还能做什么?或者也许我在这里做错了什么?

  • 你如何运行你的可执行文件?属性VS_DEBUGGER_WORKING_DIRECTORY 仅影响通过点击“调试”或“运行”在 Visual Studio 中运行可执行文件。
  • @Tsyvarev 我已选择 CMakeLists.txt 作为启动项,然后按下按钮(带绿色箭头)运行项目,这就是您所指的吗?我也通过按 F10 运行一次或两次以立即开始调试。
  • 嗯,在这种情况下设置属性VS_DEBUGGER_WORKING_DIRECTORY 应该可以工作。不知道为什么它不适合你。
  • 您是否通过解决方案资源管理器选择了您的可执行文件作为启动项目?程序究竟是如何失败的?它是否运行,但只是无法打开某些文件或是否有一些不同的错误,例如找不到dll?
  • @fabian 我在解决方案资源管理器中选择了 CMakeLists.txt 作为启动项。我遇到的唯一问题是它无法打开某些文件(例如 3D 对象模型 - .obj),程序工作 - 它运行,它创建窗口,它在控制台中打印消息等。

标签: cmake visual-studio-2022


【解决方案1】:

你可以加当前目录财产给你启动.vs.json这通常会在${workspaceRoot}/.vs目录。

要从 Visual Studio 2022 CMake 项目访问它,您可以按照以下步骤操作:

在解决方案资源管理器中单击在解决方案和可用视图之间切换按钮:

然后点击CMake 目标视图

现在右键单击您的项目并按添加调试配置在上下文菜单中

这将打开启动.vs.json可以编辑的文件当前目录财产,例如 - 我的项目02_texture.exe应该从根目录开始,所以我的启动配置如下所示:

{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
      "type": "default",
      "project": "CMakeLists.txt",
      "projectTarget": "",
      "name": "CMakeLists.txt"
    },
    {
      "type": "default",
      "project": "CMakeLists.txt",
      "projectTarget": "02_texture.exe (02_texture\\02_texture.exe)",
      "name": "02_texture.exe (02_texture\\02_texture.exe)",
      "currentDir": "${workspaceRoot}"
    }
  ]
}

【讨论】:

  • 有效!太感谢了!我需要再提一件事——在这些步骤之后,我还必须在“开始”按钮(带有绿色箭头的那个)中更改项目,以便它可以工作。
猜你喜欢
  • 2017-06-11
  • 2023-03-31
  • 1970-01-01
  • 2022-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-29
  • 2021-05-30
相关资源
最近更新 更多