为什么我不能在 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 日星期三发布。
在我的 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 日星期三发布。