Qmake DEFINES宏与参数

破坏者

我想知道如何使用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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章