- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 qmake 项目文件中找到了这一行:
DEFINES += SRCDIR=\\\"$$PWD/\\\"
我知道 PWD
部分代表打印工作目录,我让给我 SRCDIR
的值:
std::cout << "SRCDIR :" << SRCDIR << std::end;
我也将变量更改为 SRCDIR=$$PWD
但它不起作用。
但是为什么我们需要一个斜杠/
、反斜杠\
和引号"
来获取PWD
?
最佳答案
qmake
将专门处理引号字符和反斜杠。
您的最终目标是将字符串文字定义为 SRCDIR
的扩展。 C++ 中的字符串文字包含在双引号内,因此您需要这些引号将其作为定义的一部分传递给编译器。
换句话说,你想要的是:
#define SRCDIR "somedir/"
在本例中,somedir
是当前工作目录。为此,您需要使用 \"
对引号进行转义(因此 qmake
不会对其进行特殊处理)。它位于字符串的两端。
现在,转义的反斜杠 \\
怎么样?好吧,这进一步逃避了 shell 处理的引用。当指令
cc -DSRCDIR="somedir/"
传递给 shell,引号将作为 shell 处理的一部分被去除。为确保保留这些引号并定义字符串文字,您还需要在此级别使用反斜杠对它们进行转义。 shell 会将 \"
转换为 "
。因此,在这种情况下,双引号字符的完整转义序列是:
\\\"
此标记出现在定义字符串的两端。正斜杠只是让代码中的路径更容易使用;它消除了在您使用路径的任何地方添加 /
的需要。
shell 看到的命令看起来像
cc -DSRCDIR=\"somedir/\"
并且SRCDIR
在编译器内部的定义将是一个字符串字面量,相当于源代码中的以下定义:
#define SRCDIR "somedir/"
关于c++ - 了解qmake工程文件中的Term\\\"$$PWD/\\\",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37920115/
假设您有一个在白天接收订单的仓库。这些订单可以是提取产品或向仓库添加产品。在一天结束时,您会得到一份仍包含在仓库中的元素 list 。由于劳动力非常稀少,因此可能会发生订单在仓库的票务系统收到订单的当
有哪些学习音频操作/工程/编程的好资源? 最佳答案 如果您对编写音频效果感兴趣,这两个网站非常好: Music DSP KVR Developer Forum 关于audio - 有哪些学习音频操作/
我的程序写错了 struct vector v; 代替 vector v; 但编译器似乎并不关心:http://codepad.org/TCPb8p2u 为什么有效?使用或不使用 struct 是否存
我创建了一个 Settings自动检索或打印关联 JTextField 上的设置值的类。我的绑定(bind)函数如下所示: public void bindToInput(final String s
下面的例子可以编译,但是输出很奇怪: #include #include struct A { int a; char b; bool c; }; int main() {
如何在Mac-Os上打开已有的Android Studio制作的Flutter工程导出ipa版本的app?可以使用 Mac-Os 版本的 Android Studio 来完成,还是我必须使用 X-Co
我是一名优秀的程序员,十分优秀!