【问题标题】:QML debugging & qmljsdebugger profiling is not working on RPI with Yocto (poky-pyro)QML 调试和 qmljsdebugger 分析不适用于 Yocto (poky-pyro) 的 RPI
【发布时间】:2018-03-23 20:05:25
【问题描述】:

我想使用 QML Profiler 收集数据,即 qmljsdebugger 进程托管在目标设备上。我使用以下参数运行我的应用程序:

<app executable> -qmljsdebugger = port:<any available>

我尝试从 qtcreator(external) 中运行分析器来收集数据 我现在在目标设备上面临的问题有两个:

  1. 应用程序未在调试模式下运行,并且
  2. qmljsdebugger 模块未启动。

我相信如果应用程序在调试模式下运行,应用程序在命令行上运行时应该显示以下行:

QML 调试已启用。仅在安全的环境中使用。 (做 不出现!)

如果 qmljsdebugger 模块启动,应用运行时应显示以下行;

QML 调试器:等待端口上的连接。 (才不是 出现!)

现在,要启用调试模式,我知道我们需要将以下内容放入项目的 .pro 文件中;

CONFIG+=qml_debug

要启动 qmljsdebugger,我们需要提供参数以及应用程序可执行文件,如上所述。
我也明白 qmljsdebugger 依赖于两个文件:

  1. libqmldbg_tcp.so
  2. libqmldbg_inspector.so

它们必须存在于目标设备上的 qmltooling 文件夹中,该文件夹通常位于系统上 qt5 lib 文件夹中的 plugins 文件夹中。
设备上缺少这些文件。所以我尝试bitbake 工具链并从那里获取这些文件。但是我得到的不是包含上述两个文件的 qmltooling 文件夹,而是我得到的 qml1tooling 文件夹包含一个具有不同名称的文件(libqmldbg_tcp_qtdeclarative.so)。我没想到它会起作用,但它没有。
除此之外,我将 lib、bin、include 从 sysroot 复制到 /usr/lib、usr/bin 和 /usr/include 文件夹。但周围的任何地方似乎都没有任何进展。 任何帮助将不胜感激。

【问题讨论】:

    标签: qt raspberry-pi qml yocto


    【解决方案1】:

    我发现了如何做到这一点。有问题的插件已在 meta-qt5 > recipes-qt > qt5 的配方 qtbase_git.bb 中禁用。我不得不评论这一行以使 bitbake 使用 qml-debug 选项配置 qtbase。

    # PACKAGECONFIG[qml-debug] = "-qml-debug,-no-qml-debug"
    

    选择的默认值是 no-qml-debug,这就是不允许它在 qt5 > plugins > qmltooling 文件夹中创建插件的原因。 另一件事,如果工具链被用于交叉编译你的 qml 应用程序,那么工具链也应该在上面注释的行中重建,否则工具链将创建的二进制文件仍然不会启用 Qml 调试。

    【讨论】:

      【解决方案2】:

      相当古老的话题......但是,这仍然可以帮助观众: 启用 QML 调试的一种更简洁的方法是为 qtbase 添加一个 bbappend,然后在里面简单地输入这一行:

      PACKAGECONFIG_append = " qml-debug"
      

      这相当于上面提出的修改,但更简洁,因为它不涉及修改基本配方。

      【讨论】:

        猜你喜欢
        • 2018-01-11
        • 1970-01-01
        • 1970-01-01
        • 2012-11-02
        • 2018-03-15
        • 2019-02-03
        • 2014-08-31
        • 1970-01-01
        • 2016-06-18
        相关资源
        最近更新 更多