【发布时间】:2014-01-31 08:53:06
【问题描述】:
这样的qmake 项目(*.pro)代码在 Ubuntu Linux 下成功运行,但在 Windows 8 下却不行:
win32 {
BUILD_TIME = $$system ("time /T")
}
else
{
BUILD_TIME = $$system ("time")
}
message($$BUILD_TIME) # output the current time
输出是“时间/T”,即命令本身而不是命令执行值。 这种行为是一个错误,还是只是我做错了? :)
UPD:我找到了另一种获取当前日期的方法:$$_DATE_。然而,
我不喜欢使用未记录的功能 - 这是个坏主意。
附:我的目标只是生成唯一的构建 ID 字符串。我正在使用 Qt 4.8.5。
【问题讨论】:
-
不幸的是,
qmake的任何重要的实际使用都必须依赖于一大堆未记录的功能。别担心,它们不会从你身边带走。qmake处于纯维护模式,意味着“永远”保持稳定。如果可以,请使用qbs,这将是未来。 -
@KubaOber 嗯,我已经在 qmake 中找到了
_DATE_env 变量,它可以替代地解决我的问题 - 它没有记录。作为一个该死的空间对 qmake 解析器工作的影响;(并且 - 你能举一个使用qbs的大型项目的例子吗? -
我使用 qbs 来构建 Qt 本身。我不知道这是否足够大:)
-
@KubaOber 是的,它是 :) 但据我了解,
qbs尚未准备好用于生产用途 - 例如Qt Creator 不允许创建基于 qbs 的 Qt 项目,只允许非 Qt 一个 oO