gpt4 book ai didi

c++ - 如何将 cmd 命令输出传递给 QMake 中的#DEFINE MACRO

转载 作者:太空狗 更新时间:2023-10-29 20:14:36 25 4
gpt4 key购买 nike

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

#DEFINE += SVN_V

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

#DEFINE += "SVN_V = svnversion -n"

但是结果是

error: no such file or directory

error: svnversion: no such file or directory

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

最佳答案

可能是这样的:

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

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

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

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

双引号 \\\" 是传值给预处理器。没有它,值将不带引号并被识别为 int。\\\" 将被解析通过 qmake 作为 \" 传递给编译器。

关于c++ - 如何将 cmd 命令输出传递给 QMake 中的#DEFINE MACRO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15837185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com