我有一个C++项目,需要在一些CXX文件中定义一个变量。我有近800个文件,其中有200个文件需要定义一个变量。所以我想在makefile中定义它。那么我们该如何做呢?
我有一个C++项目,需要在一些CXX文件中定义一个变量。我有近800个文件,其中有200个文件需要定义一个变量。所以我想在makefile中定义它。那么我们该如何做呢?
只需在命令行中添加-Dxxx=yy
(其中xxx
是宏名称,yy
是替换内容,如果没有值,则只需使用-Dxxx
)。
这不是Makefile命令,而是编译器命令行选项的一部分。
xxx
是名称,yy
是值。例如,#define xxx (yy)
等同于 -Dxxx=yy
。 - Fiddling Bits假设你需要替换#define MYDEF
在你的makefile中,你有编译器命令行,例如(最简单的例子):
g++ -o myfile.cpp
myfile.cpp
都获取到那个#define,只需使用-D
,像这样:g++ -DMYDEF -o myfile.cpp
-D
用于GCC
),这样它就会应用于任何隐式规则的编译器调用:CXXFLAGS += -DMY_DEFINE
然后将该变量添加到您可能具有的任何显式规则中:
target: source.cpp
$(CXX) -std=c++14 $(CXXFLAGS) ...
defining.h:
#define deff 10
#include "definitions.h"