2012-11-28 88 views
4

我相信可以在make文件中使用環境變量的值。是否可以在make文件中使用從bash腳本導出的變量?

由於我是新來的bash和製作,有一個艱難的時間搞清楚如何。

我試過以下,但沒有成功。

在bash

TEST_VAR=1 

export TEST_VAR 

make文件

ifeq ($(TEST_VAR),1) 

COMMON_OBJECTS    += Test1.o 

endif 

,但它不會編譯Test1.cpp。

我的make文件只包含這些行,我將COMMON_OBJECTS添加到另一個文件中定義的另一個變量。

如果我評論這個ifeq條件Test1正在編譯。但我正在尋找一種方法來有條件地做到這一點。

我在這裏失蹤了什麼?

+0

在您的提示符下執行** export TEST_VAR = 1 **,然後執行* make * – tuxuday

+1

如何使用gmake執行makefile?在導出後,在同一個shell會話中?你在這裏展示的所有東西看起來都很好,所以一定有其他東西是錯的。 –

+0

謝謝。現在我的變量被列出來,當我從控制檯執行導出。但仍然沒有編譯Test1.cpp文件。 :( – NeonGlow

回答

1

如果您在bash腳本文件中執行「In bash」命令,則必須在執行「。」之前執行該命令。即如果bash的文件名爲「腳本」,然後

$ . script 
$ make 

這是因爲每個腳本在它自己的bash的實例運行,除非當你與它preceed「」。然後在調用它的同一個bash上執行。

+0

您的意思是說,要訪問make文件中的值,我們需要使用''運行腳本。 script_name'而不是'。/ script_name'?在我的情況下,bash腳本本身調用build命令。 – NeonGlow

+0

這是bash腳本http://pastebin.com/qPgBAfGt。 這是Makefile http://pastebin.com/wFRDdatA。這些腳本按預期工作。 請回顧他們,讓我知道如果我沒有得到你的情況。 – kdehairy

相關問題