如何通过MinGW Make定义预处理器宏

问题描述

我一直在尝试构建通过 qmake 生成 make文件,并且我尝试了以下操作,但它们似乎不起作用。>

mingw32-make -j8 -DDEVELOP
mingw32-make -j8 -D DEVELOP

但两者似乎都因前者给我而失败:

mingw32-make: invalid option -- E
mingw32-make: invalid option -- V
mingw32-make: invalid option -- E

之后是-help邮件。 第二个开始编译,但随后进入mingw32-make: *** DEVELOP: No such file or directory. Stop.并停止,无法生成exe。

我正在使用在QT侧面安装的GNU MAKE 4.2.1。

我不想从我的项目文件或C ++中定义它们,因为它们对于某些构建是唯一的。我该怎么做呢?

解决方法

GNU Make没有-D参数。 如果要将其传递给编译器,则需要检查Makefile以查看是否存在一个变量,您可以在其中添加该变量以进行编译。通常是CFLAGS和/或CXXFLAGS

有时候你可以做

mingw32-make -j8 CXXFLAGS="-DDEVELOP"

或者如果这样不起作用,您可以尝试这样

mingw32-make -j8 CXX="g++ -DDEVELOP"

在最坏的情况下,您需要在完成编译的-DDEVELOP上手动添加Makefile(查找编译标志-c或其他标志,例如-O)。