我想使用QML Profiler来收集数据,qmljsdebugger处理目标设备上的主机。我使用以下参数运行我的应用程序:
<app executable> -qmljsdebugger = port:<any available>
我尝试运行探查器来从qtcreator(外部)中收集数据 我目前在目标设备上遇到的问题有两个:
我相信如果应用程序在调试模式下运行,则应用程序在命令行上运行时应显示以下行:
启用QML调试。只能在安全的环境中使用它。 (不 没出现!)
如果qmljsdebugger模块启动,应用程序运行时应显示以下行;
QML调试器:等待端口连接。 (才不是 出现!)
现在,要启用调试模式,我知道我们需要将以下内容放在项目的.pro文件中;
CONFIG+=qml_debug
要启动qmljsdebugger,我们需要将参数与app可执行文件一起提供,如上所述。
我也明白qmljsdebugger依赖于两个文件:
它们必须存在于qmltooling文件夹中的目标设备上,该文件夹通常位于系统qt5 lib文件夹中的plugins文件夹中。
设备上缺少这些文件。所以我尝试bitbake
工具链并从那里获取这些文件。但我得到的不是带有上述两个文件的qmltooling文件夹,而是我得到一个带有不同名称的文件的qml1tooling文件夹(libqmldbg_tcp_qtdeclarative.so)。我没想到它会起作用但事实并非如此
除此之外,我将lib,bin,include从sysroots复制到/ usr / lib,usr / bin和/ usr / include文件夹。但似乎没有任何东西在任何地方徘徊。
任何帮助都将受到高度赞赏。
答案 0 :(得分:0)
我发现了如何做到这一点。有问题的插件已在meta-qt5&gt;中的配方qtbase_git.bb中禁用。食谱-qt&gt; QT5。我不得不评论这一行,以使用qml-debug选项进行bitbake配置qtbase。
# PACKAGECONFIG[qml-debug] = "-qml-debug,-no-qml-debug"
选择的默认值为no-qml-debug,这是不允许它在qt5&gt;中创建插件的内容。插件&gt; qmltooling文件夹。 另外,如果使用工具链来交叉编译你的qml应用程序,那么工具链也应该用上面注释的行重建,否则工具链将创建的二进制文件仍然不会启用Qml Debug。
答案 1 :(得分:0)
相当古老的话题……但是,这仍然可以帮助观众: 启用QML调试的一种更干净的方法是为qtbase添加一个bbappend,然后在其中简单地添加以下行:
PACKAGECONFIG_append = " qml-debug"
这等同于上面提出的修改,但是更干净,因为它不涉及修改基本配方。