带有参数的Qmake DEFINES宏
Qmake DEFINES macro with parameter
我想知道如何使用 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++ 预处理器宏以及我的宏如何导致编译错误。
P.S. 我完全了解 Q_UNUSED
宏,但我更喜欢有一个宏,它不仅指示变量未使用,而且还有为什么它没有被使用。
P.S. 我发布的代码是我项目的 100%,没有更多的文件 define/redefine 其他任何东西。
您需要使用反斜杠转义括号和分号:
DEFINES += TEMPORARY_UNUSED\(x\)=\(void\)x\;
否则()和;在 -D 编译器参数中将被解释为更复杂命令的一部分。
我想知道如何使用 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++ 预处理器宏以及我的宏如何导致编译错误。
P.S. 我完全了解 Q_UNUSED
宏,但我更喜欢有一个宏,它不仅指示变量未使用,而且还有为什么它没有被使用。
P.S. 我发布的代码是我项目的 100%,没有更多的文件 define/redefine 其他任何东西。
您需要使用反斜杠转义括号和分号:
DEFINES += TEMPORARY_UNUSED\(x\)=\(void\)x\;
否则()和;在 -D 编译器参数中将被解释为更复杂命令的一部分。