【问题标题】:Qt DEFINES doesn't work in project fileQt DEFINES 在项目文件中不起作用
【发布时间】:2011-09-04 12:27:24
【问题描述】:

我有一个这样开头的项目文件:

VERSION = 0.9.9.0
DEFINES += VERSION_NUMBER=$${VERSION}

所以我定义了一个新的常量 VERSION_NUMBER,然后我可以在源代码中访问它。但是,稍后当我这样做时:

qDebug() << VERSION_NUMBER;

编译器告诉我error: C2143: syntax error : missing ';' before 'constant' 好像没有定义 VERSION_NUMBER。有人知道是什么原因吗?

【问题讨论】:

    标签: qt qmake


    【解决方案1】:

    您需要在这里解决三个问题。首先是您需要将 VERSION_NUMBER=$${VERSION} 赋值放在引号内:

    Add a define to qmake WITH a value?

    第二个是让 QMake 传入字符串文字 #define 并不是很容易。很多方法只会将您按句点分隔的数字解释为格式不正确的数字常量:

    http://robertcarlsen.net/2009/01/06/qmake-xcode-bug-258

    这可能会让您遇到问题...在我的设置上有效,尽管这是一个三重逃避的头痛:

    VERSION = \\\"'0.9.9.0'\\\"
    DEFINES += "VERSION_NUMBER=$${VERSION}"
    

    第三个问题 - 可能是最大的问题 - 是您使用的是过时的 QMake,而 Trolltech/Nokia 的人都知道:

    http://labs.qt.nokia.com/2009/10/12/to-make-or-not-to-make-qmake-and-beyond/

    你应该切换到别的东西(比如CMake...它支持Qt并被KDE使用)。

    【讨论】:

      猜你喜欢
      • 2012-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-03
      • 1970-01-01
      • 1970-01-01
      • 2015-04-29
      相关资源
      最近更新 更多