2015-06-01 63 views
1

我對make文件不是很熟悉,並且試圖在Eclipse(linux)的make文件中定義一個預處理器變量。make文件預處理指令

它變成了一個不平凡的任務,因爲它似乎我失去了一些東西......

婁你可以找到我的make文件的結構:

var_first=g++ 

all: 

    g++ main_cell.cpp -o hello 

這樣我建立我的代碼,我想要做的是在我的make文件中定義一個變量,然後在我的代碼中使用#ifdef,#endif聲明變量。

我已經通過多種組合了,但我錯過了一些步驟,因爲它似乎...

能否請您給些指點?

回答

1

如果要將預處理器變量直接傳遞給編譯器,則使用-D標誌。

E.g.要定義變量PRE_MY_VAR1,你可以寫:

g++ -o myexecutable *.cpp -DPRE_MY_VAR=1 

所以在你的makefile,這將是:

all: 
    g++ main_cell.cpp -o hello -Dvar_first="g++" 
+0

非常感謝,非常有幫助! –

1

要添加的定義而編制,使用-D克++選項。就像這樣:

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) 

這相當於在#define var_first g++。 CPP文件

+0

非常感謝你! –