当前位置:  开发笔记 > IOS > 正文

如何通过Qt项目文件将命令的输出作为编译器标志传递?

如何解决《如何通过Qt项目文件将命令的输出作为编译器标志传递?》经验,为你挑选了1个好方法。

我正在尝试将"git describe"的输出添加到我的应用程序的about窗口中,因此更容易找出人们使用的应用程序版本.

我可以通过添加以下编译器标志来实现:-DAPP_VERSION ="$(git describe HEAD)"

但由于该项目基于qmake,我想找到一种方法将其放入Qt项目文件中.这可能吗?如果是这样,怎么样?

编辑:我尝试添加以下内容:

QMAKE_CXXFLAGS + = -DAPP_VERSION ="$(git describe HEAD)"

但它只是给了我"-DAPP_VERSION =",所以我想我必须使用一些转义字符,但我不知道哪些和哪里.:/



1> KIAaze..:

由于这个链接问题解决了:http://robertcarlsen.net/blog/2009/01/06/qmake-xcode-bug-258

这是我用来测试它的qt项目示例:qt.pro:

######################################################################
# Automatically generated by qmake (2.01a) Thu Apr 2 16:23:05 2009
######################################################################

TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .

# Input
SOURCES += qt.cpp

QMAKE_CXXFLAGS += -DAPP_DATE=\\\"`date +'\"%a_%b_%d,_%Y\"'`\\\"
QMAKE_CXXFLAGS += -DAPP_VERSION=\\\"`git describe`\\\"

qt.cpp:

#ifndef APP_DATE
#define APP_DATE "1/1/1970"
#endif

#ifndef APP_VERSION
#define APP_VERSION "local-dev"
#endif

#include 
#include 
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QString version = QString("version ") + APP_VERSION + ' ' + APP_DATE;
    QLabel *label = new QLabel(version);
    label->show();
    return app.exec();
}

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有