2016-10-04 279 views
0

我安裝了兩個gcc(同樣適用於g ++)版本。較新的一個是默認的:在shell中設置GCC版本

/usr/bin/gcc  # 4.9.2 
/usr/bin/gcc-4.4 # 4.4.7 

對於我的make命令,我想使用gcc-4.4/g ++ - 4.4。

我已經試過這三個variantes但沒有一個似乎工作:

export CC="gcc-4.4" 
export CPP="g++-4.4" 

export CC=/usr/bin/gcc-4.4 
export CPP=/usr/bin/g++-4.4 

export gcc=/usr/bin/gcc-4.4 
export g++=/usr/bin/g++-4.4 

的Makefile定義:

# Compiler Options 
CC  = gcc 
CPP  = g++ 
LD  = g++ 

由Makefile中,編譯器仍然是4.9.2。我怎樣才能使用4.4.7?

回答

4

GNU Make manual, 6.10 Variables from the Environment

變量在make可以來自其中make運行環境。每個啓動時看到的環境變量都會被轉換爲具有相同名稱和值的make變量。然而,在生成文件或命令參數中的顯式賦值將覆蓋環境。 (如果指定了-e標誌,然後從在生成文件的環境覆蓋分配值,但不推薦這樣做實踐。)

的推薦的做法是通過對make命令行這些變量:

$ make CC=gcc-4.4 CPP=g++-4.4 CXX=g++-4.4 LD=g++-4.4 

旁註是CXX用於編譯的C++代碼,而CPP是用於預處理。生成文件的作者可能將CPPCXX混淆,或者makefile確實使用CPP來生成依賴關係,這在過去的十年中是不必要的。有關更多詳細信息,請參閱this