我想知道如何使用qmake DEFINES变量定义C ++预处理程序宏。我尝试执行以下操作:
项目文件
TEMPLATE = app
CONFIG += c++14 console
SOURCES += main.cpp
DEFINES += "TEMPORARY_UNUSED(x)=\"(void)x;\""
DEFINES += "BASE_CLASS_UNUSED(x)=\"(void)x;\""
Main.cpp文件
int main() {
int hello;
TEMPORARY_UNUSED(hello)
BASE_CLASS_UNUSED(hello)
}
但这导致以下错误:[main.o] Error 2
。我不知道宏定义(顺便说一句很简单)如何导致构建过程中的错误。
这是使用c ++的宏定义#define
。他们按照我的预期工作
#define TEMPORARY_UNUSED(x) (void)x;
#define BASE_CLASS_UNUSED(x) (void)x;
问题是:如何使用qmake DEFINES定义c ++预处理程序宏以及我的宏如何导致编译错误。
PS我很清楚Q_UNUSED
宏,但是我更喜欢有一个宏,它不仅指示变量未使用,而且指示变量为什么未使用。
我发布的PS代码是我项目的100%,没有其他文件定义/重新定义任何其他内容。
您需要使用反斜杠对括号和分号进行转义:
DEFINES += TEMPORARY_UNUSED\\(x\\)=\\(void\\)x\\;
否则()和; -D编译器参数中的“ |”将被解释为更复杂命令的一部分。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句