如何使用CMake项目调试QML

时间:2016-02-09 16:20:08

标签: c++ qt debugging cmake qml

我已设置标志-DQT_QML_DEBUG并检查"启用QML"在"构建并运行>运行>调试器设置" (我的翻译)但我仍然无法使用调试器。简单地不显示指令指针,文本视图不遵循instructoin指针。另外,我在开始时收到此警告:

name     breeder_count
--------------------------
Mouse    2
Cow      1
Pig      1
Dog      0

编辑:Environtment是archlinux,因此是最新版本。

2 个答案:

答案 0 :(得分:3)

除了前两个步骤,添加

#include <QQmlDebuggingEnabler>

...

QQmlDebuggingEnabler enabler;

到项目的main.cpp。

这对我很有帮助,虽然我没有看到你的确切警告信息。

答案 1 :(得分:0)

需要禁用编译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

的情况下起作用