我正在尝试将构建日期和时间输入到应用程序中,以便在“关于”页面中显示。
在我的档案中我有:
DEFINES += "BUILDDATE=$$system(date +'%d-%m-%y %T')"
我在系统的终端上尝试了格式为的date命令,它工作正常。
在我的资料中:
QString strBldDate(BUILDDATE);
这一切都没有错误,当我检查调试器,strBldDate是空的。
在讨论中,我被告知可以使用.pro文件中的message()来显示以下示例:
message($$system(date +"'%d-%m-%y %T'"))
这是可行的,当我构建我得到这样的东西:
Project MESSAGE: 26-06-19 10:34:59
但是如何使用相同的方法来验证定义的内容呢?
message(BUILDDATE)
经过我以上的努力,结果是:
Project MESSAGE: BUILDDATE
2条答案
按热度按时间c2e8gylq1#
实际上,您可以在GCC和MSVC中使用标准的预定义宏。
以下是GCC中的predef宏列表:3.7.1 Standard Predefined Macros
对于MSVC:Predefined Macros
代码可能如下所示:
如果你不能使用预定义的宏,就不要在定义中使用空格,而是用反斜杠将其打包,如下所示:
编辑:创建builddatetime.h文件,并将其包含在需要构建版本的任何位置:
在.pro文件中,将builddatetime.h添加到标题(
HEADERS += builddatetime.h
)和以下行:这将触及builddatetime.h,并且包含此头文件的所有cpp文件将在每个构建和运行命令时重新构建。
cgh8pdjw2#
对于每个想要相同但在windows上的人。使用@Xplatforms解决方案与builddatetime.h文件,但使用不同的命令: