gpt4 book ai didi

qt - Visual Studio + CMake + Qt Quick : how to debug QML files?

转载 作者:行者123 更新时间:2023-12-05 06:19:12 27 4
gpt4 key购买 nike

我的项目是使用 CMake 构建的。 Visual Studio可以直接打开CMakeLists.txt,不需要生成vcxproj,非常方便。

我的项目也使用了 Qt 和 QML。如果打开 vcxproj,Visual Studio 的插件 - Qt VS Tool 允许您在设置中连接 QML 文件的调试器。如果您打开 CMakeLists.txt,则 Qt VS Tools 不起作用,您必须手动连接调试器。然而,the official documentation非常简洁 - 关于连接调试器只有一小段,它包含不正确的信息。从这个文档中完全不清楚如何实际连接调试器来调试 QML。

我尝试像 Qt VS Tools 那样做。它将命令行选项传递给调试文件。我尝试传递相同的参数。在 Visual Studio 中,launch.vs.json 文件负责在 CMake 中构建的项目的调试器下启动设置。我是这样理解的:

{
"version": "0.2.1",
"defaults": {},
"configurations": [
{
"type": "default",
"project": "CMakeLists.txt",
"projectTarget": "MyApp.exe (MyProj\\MyApp.exe)",
"name": "MyApp.exe (MyProj\\MyApp.exe)",
"env": "PATH = C:\\Qt\\5.13.0\\msvc2017_64\\bin; ${env.PATH}",
"args": ["-qmljsdebugger=file:MyApp.exe,block"]
}
]
}

实际上,“args”行负责连接 QML 调试:["-qmljsdebugger = file: MyApp.exe, block"]。这一行是从 Qt VS Tools 中生成的行复制而来的。只是 Qt VS Tool 没有传递文件名,而是在那里传递了项目的 GUID。它的行看起来像这样:-qmljsdebugger = file: {7A883E87-2CB8-3EB7-9DE4-156F3850167A}, block。 CMakeLists.txt 没有任何guids,所以不清楚文件参数应该传递什么。该文档声称是一个文件名。目前尚不清楚为什么 Qt VS Tools 会在那里传递 GUID。

并且使用此类设置在 CMake 中构建的文件在启动时挂起,等待调试器连接到它。不清楚如何将调试器连接到它,因为调试器已经连接到进程。

如何正确连接 Visual Studio 调试器以处理调试 QML 文件?

最佳答案

我刚刚花了一周时间调查这个问题,但我得到了坏消息。负责 QML 调试的是 Qt VS 工具:您还会在扩展的安装文件夹中找到一个名为 vsqml.dll 的库。该工具仅支持 Visual Studio 项目,因此目前不支持通过打开文件夹而不生成 .sln 解决方案和/或 .vcxproj 项目在原始 CMake 项目上运行 QML 调试。

详情请见this Qt Blog post评论区.

关于qt - Visual Studio + CMake + Qt Quick : how to debug QML files?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60887437/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com