如何在QT的pro文件中定义包含特殊符号的字符串?

3

我需要定义类似以下的内容:

DEFINES += SENSOR_URL="udp://10.3.2.2.220#1"

但是它会抛出错误:

错误:缺少闭合引号

怎么办?


展示你尝试过的内容... - Gianmarco
我尝试了 DEFINES += SENSOR_URL=\"udp://10.3.2.2.220#1\",但它抛出了错误:缺少终止符 "。 - maszynaz
嗯,也许这个主题的标题应该改为反映问题是与.pro文件有关,而不是Qt字符串(QString)。 - drescherjm
3个回答

11

在我的配置文件中,我会做类似以下的操作:

DEFINES += VERSION_STR=\\\"0.4\\\"

更新:

问题可能在于'#'符号是qmake文件格式中的注释标记,因此应该进行转义。像这样:

DEFINES += SENSOR_URL=\\\"udp//:10.3.2.2.220$${LITERAL_HASH}1\\\"

好的。现在错误变成了:<command-line>:0: 错误:'udp' 在此范围内未声明。 - maszynaz
1
谢谢您,先生。$${LITERAL_HASH} 正是我所需要的。 - Aloïké Go
1
只是为了澄清,$${LITERAL_HASH} 是一个内置的 QMake 变量。 - BuvinJ

5
问题在于#被视为注释,导致它忽略了闭合引号。不幸的是,这是一个无法转义的特殊字符,即使使用quoteescape_expand和其他未记录的函数也无法解决。曾经有人在错误跟踪器上进行讨论,试图修复此问题,但现在已经关闭。

1
一个来自项目的工作示例在这里:

 DEFINES += REPO_DIR="\\\"$$DESTREPODIR\\\""

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接