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

How do I define preprocessor macros through MinGW make

我一直在尝试构建一个 make 文件 我通过 qmake 生成,我尝试了以下但他们没有' 似乎有效。

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 and/or CXXFLAGS.

有时你可以做到

mingw32-make -j8 CXXFLAGS="-DDEVELOP"

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

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

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