我对make文件不是很熟悉,并且我想在Eclipse(linux)中的make文件中定义一个预处理器变量。
这显然是一项非常重要的任务,因为它似乎缺少一些东西......
Bellow你可以找到我的make文件的结构:
var_first=g++
all:
g++ main_cell.cpp -o hello
以这种方式构建我的代码,我想要做的是在我的make文件中定义一个变量,然后在我的代码中用#ifdef,#endif声明它。
我经历过多种组合,但似乎错过了一些步骤......
你能指点一下吗?
答案 0 :(得分:1)
如果要将预处理器变量直接传递给编译器,则使用-D
标志。
E.g。您想要将变量PRE_MY_VAR
定义为1
,您可以写:
g++ -o myexecutable *.cpp -DPRE_MY_VAR=1
所以在你的makefile中这将是:
all:
g++ main_cell.cpp -o hello -Dvar_first="g++"
答案 1 :(得分:1)
要在编译时添加定义,请使用-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文件中的#define var_first g++