【发布时间】: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),程序工作 - 它运行,它创建窗口,它在控制台中打印消息等。