4

#DEFINE我在我的“.pro”文件中添加了一个新文件,如下所示:

#DEFINE += SVN_V

现在我想将命令“svnversion -n”的输出传递给这个SVN_V,这就是我所做的:

#DEFINE += "SVN_V = svnversion -n"

但结果是

错误:没有这样的文件或目录

错误:svnversion:没有这样的文件或目录

那么,我到底错过了什么?(请注意我正在使用 Linux Ubuntu)

4

2 回答 2

8

它可能是这样的:

DEFINES += "SVN_V=\"\\\"$$system(svnversion -n)\\\"\""

$$system()是一个 qmake 函数,用于执行系统命令并从中获取输出。

SVN_V 周围的外部引号... - 用于 qmake - 它必须明白这是一个单一的定义。如果$$system()返回以空格分隔的字符串“未知版本”,您将得到结果:-DSVN="Unknown -Dversion".

下一个引号\"- 将$$system()结果传递给编译器。没有它,您将得到两个参数而不是一个"Unknownand version"

双引号\\\"是将值传递给预处理器。没有它的值将没有引号并被识别为 int。\\\"将由 qmake as 解析\"并传递给编译器。

于 2013-04-07T07:03:22.543 回答
0

我在桌上的分:svn info --show-item revision

于 2019-06-26T02:42:40.327 回答