为什么我不能在 QBS 项目中使用控制台输出?

Why i can't use console output in QBS project?

在我的 qbs 文件中:

import qbs

Project {
    name: {
            console.info("Hello!");
            return "ProjectName";
    }
 ...
 }

我收到消息:ReferenceError:找不到变量:console

我的Qt版本是5.5.0。我的 Qt Creator 版本是 3.5.1

我使用了 MSYS2 存储库中的二进制文件。

编辑: 我可以通过 Ctrl-Space 热键在文本编辑器中看到 console 变量的方法。

虽然我不确定为什么 qbs 不支持 console 对象(仍然停留在 qmake 土地我自己),您可以使用 print:

获得控制台输出
        print("Hello!");

这在控制台中有效,但在 Qt Creator 中无效。这将在 qbs 1.5 中得到解决,但正如@JakePetroules 所指出的那样,在撰写本文时尚未发布。相关的、已解决的错误报告是 here.

对于旧版本,似乎您只需要 throw "Hello!";(这会使构建失败),或者在调试项目构建时从命令行使用 运行 qbs(使用的命令可以是方便地从 Qt Creator 项目视图复制。


至于为什么 Qt Creator 自动完成会显示它,它会冒险猜测:这可能是因为 console 被硬编码到它的 Javascript 自动完成中作为核心 Javascript 功能始终可用。可能值得写 a bug report!

Qbs 1.5 支持 console logging API,其输出将显示在 Qt Creator 的常规消息选项卡中。在 Qbs 1.4.5 及以下版本中,print() 是唯一可用的调试函数。正如另一个答案所示,您必须使用它或 throw.

Qbs 1.5 的发布日期尚未确定。Qbs 1.5 于 2016 年 5 月 11 日星期三发布。