2016-08-23 4 views
0

test.shシェルスクリプトの内容は以下のとおりです。シェルスクリプトから呼び出された場合、ファイル環境変数が有効にならないようにする

PATH=/root/toolchains/gcc/gcc-4.8.2-20140120-centos70/bin/:$PATH 
make -C ~/apps 

appsディレクトリにはメイクファイルがあります。内容は以下のとおりです。

all: 
$(CC) -dumpversion 
@echo $(PATH) 

ここでmake 'echo $ PATHは新しいPATH変数を示しています。ここでCCは、新しいパス変数から新しいCCを取得する必要があります。しかし、$ CCは新しい経路からピックアップしていません。この問題の原因は何ですか?

+1

' CC'、あなたがあなたの 'PATH'内のどこかに' cc'という名前のリンクを持っていることを確認していますか? – user657267

+1

パスを表示するには$(CC)を参照してください – pakistanprogrammerclub

+0

$ CCは 'cc'を出力します – deadbeef

答えて

1

あなたは試してみてください:cc` `へのメイクはデフォルトで

PATH=/root/toolchains/gcc/gcc-4.8.2-20140120-centos70/bin/:$PATH 
make CC=gcc -C ~/apps 
+0

make CC = gccオプションは新しいパスからピッキングします。解決される。私は、他の道具(例:LD)を新しい道から選ぶ必要があるかもしれません。それを作るオプションとしてこれをすべて渡すのは間違いです。 – deadbeef

+0

これらのツールが '/ root/toolchains/gcc/gcc-4.8.2-20140120-centos70/bin /'(例えば 'ld')に存在する場合、それらは最初にピックアップされます。私はちょうど '/ cc'バイナリが'/root/toolchains/gcc/gcc-4.8.2-20140120-centos70/bin/'にないと想像しました。 –

+0

さらに問題がある場合は、質問を更新するか、別の質問をしてください。 –

関連する問題