首页 > 解决方案 > 如何通过 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++ 中定义这些,因为它们对于某些构建是唯一的。我该怎么做呢?

标签: mingwc-preprocessorpreprocessormingw32

解决方案


GNU Make 没有-D参数。如果你想把它传递给你的编译器,你需要检查Makefile是否有一个变量可以添加到编译时使用的变量中。通常这将是CFLAGS和/或CXXFLAGS

有时你可以做

mingw32-make -j8 CXXFLAGS="-DDEVELOP"

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

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

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


推荐阅读