如何使用 CMake 项目调试 QML
How to debug QML with a CMake project
我已经设置了标志 -DQT_QML_DEBUG并在"构建并运行>运行调试器设置"(我的翻译(中选中了"启用 QML">但我仍然无法使用调试器。指令指针只是不显示,文本视图不跟随指令指针。此外,我在启动时收到以下警告:
Warning: "QML Debugger: Invalid argument 'services:DebugMessages' detected. Ignoring the same."
Warning: "QML Debugger: Invalid argument 'QmlDebugger' detected. Ignoring the same."
Warning: "QML Debugger: Invalid argument 'V8Debugger' detected. Ignoring the same."
Warning: "QML Debugger: Invalid argument 'QmlInspector' detected. Ignoring the same."
QML Debugger: Waiting for connection on port 39750...
编辑:环境是archlinux,因此是最新版本。
编译 qml 文件需要禁用以进行调试。
FIND_PACKAGE(Qt5QuickCompiler QUIET)
IF(Qt5QuickCompiler_FOUND AND NOT CMAKE_BUILD_TYPE MATCHES Debug AND NOT CMAKE_BUILD_TYPE MATCHES RelWithDebInfo)
QTQUICK_COMPILER_ADD_RESOURCES(RESOURCES qml.qrc)
ELSE()
SET(RESOURCES qml.qrc)
ENDIF()
ADD_EXECUTABLE(my_target_name
...
${RESOURCES}
)
目标需要用QT_QML_DEBUG
来构建
TARGET_COMPILE_DEFINITIONS(my_target_name
PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
这应该在不玩QQmlDebuggingEnabler
的情况下工作
除了前两个步骤之外,
添加#include <QQmlDebuggingEnabler>
...
QQmlDebuggingEnabler enabler;
到项目的主要.cpp。
这对我有帮助,尽管我还没有看到您的确切警告消息。
来自>调试器设置>运行的项目取消选择并重新选择启用C++和启用 QML
这对我在曼扎罗山上有用
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 从C++实例化QML
- 使用CMake创建QML插件
- QT通过C++添加映射QML项目
- 在linux上调试巨大的C++项目
- 如何在没有信号的情况下从C++执行QML插槽
- 为什么使用__LINE_的代码在发布模式下在MSVC下编译,而不是在调试模式下
- 如何针对特定情况调试和修复此双自由内存损坏问题
- QML按钮点击功能执行顺序
- 正在VS调试器中监视映射条目
- 使用调试/崩溃报告将应用程序部署到客户端
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 建议在运行时将带有类实例的列表从c++导入qml
- VC++本机单元测试,找不到调试符号
- Qt Quick-如何仅从c++代码与qml属性交互
- 如何在C++生成器中禁用"使用调试.dcus"
- 如何将带有自定义对象的容器从C++传递到QML
- 如何调试和/或分析Qt-Qml
- 如何使用 CMake 项目调试 QML
- QML 应用程序崩溃;如何调试