Makefile 生成文件预处理器指令
我对make文件不是很有经验,我正在尝试在Eclipse(linux)中的make文件中定义一个预处理器变量 这是一项不平凡的任务,因为我似乎遗漏了一些东西 下面您可以找到我的make文件的结构:Makefile 生成文件预处理器指令,makefile,g++,c-preprocessor,compiler-options,Makefile,G++,C Preprocessor,Compiler Options,我对make文件不是很有经验,我正在尝试在Eclipse(linux)中的make文件中定义一个预处理器变量 这是一项不平凡的任务,因为我似乎遗漏了一些东西 下面您可以找到我的make文件的结构: var_first=g++ all: g++ main_cell.cpp -o hello 通过这种方式,我构建代码,我要做的是在make文件中定义一个变量,然后在代码中用#ifdef、#endif断言该变量 我已经经历了许多组合,但似乎遗漏了一些步骤 请给出一些指针好吗?如果要将预处
var_first=g++
all:
g++ main_cell.cpp -o hello
通过这种方式,我构建代码,我要做的是在make文件中定义一个变量,然后在代码中用#ifdef、#endif断言该变量
我已经经历了许多组合,但似乎遗漏了一些步骤
请给出一些指针好吗?如果要将预处理器变量直接传递给编译器,请使用
-D
标志
例如,如果要将变量PRE_MY_VAR
定义为1
,可以编写:
g++ -o myexecutable *.cpp -DPRE_MY_VAR=1
因此,在makefile中,这将是:
all:
g++ main_cell.cpp -o hello -Dvar_first="g++"
要在编译时添加定义,请使用
-D
g++选项。像这样:
g++ -DMyDefine=123 main_cell.cpp -o hello
现在在main_cell.cpp
中,您可以执行以下操作:
#if MyDefine == 123
doStuff();
#endif
要为此使用makefile变量,请执行以下操作:
all: g++ main_cell.cpp -o hello -Dvar_first=$(var_first)
这相当于在.cpp文件中首先定义var++