Macros Qmake使用参数定义宏 我想知道如何使用QGuestRealthor变量定义C++预处理器宏。我已尝试做以下工作:

Macros Qmake使用参数定义宏 我想知道如何使用QGuestRealthor变量定义C++预处理器宏。我已尝试做以下工作:,macros,c-preprocessor,qmake,Macros,C Preprocessor,Qmake,项目文件 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

项目文件

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]错误2
。我不知道宏定义(顺便说一下非常简单)如何在构建过程中导致错误

这是使用c++的
#define
定义的宏定义。他们的工作和我预期的一样

#define TEMPORARY_UNUSED(x) (void)x;
#define BASE_CLASS_UNUSED(x) (void)x;
问题是:如何使用QGuy定义定义C++预处理器宏以及宏如何导致编译错误?< /P> p.S.我非常清楚
Q_UNUSED
宏,但我更喜欢使用一个宏,它不仅指示变量未使用,还指示变量未使用的原因


p.S.我发布的代码是我项目的100%,没有其他文件定义/重新定义任何其他内容。

您需要用反斜杠转义括号和分号:

DEFINES += TEMPORARY_UNUSED\\(x\\)=\\(void\\)x\\;
否则()和(;在-D中,编译器参数将被解释为更复杂命令的一部分