21

$MY_ENV_VARIABLE という名前の環境変数が設定されています。

この変数を makefile 内で使用して (たとえば) ソース ファイルをインクルードするにはどうすればよいですか?

LOCAL_SRC_FILES = $(MY_ENV_VARIABLE)/libDEMO.so

上記のようなものは機能しないようです。

注: 私の場合、これは Android NDK でビルドするために必要ですが、これは make 全般に当てはまると思います。

4

3 に答える 3

17

情報を追加するだけです...

make で環境変数にアクセスするための構文は、make の他の変数と同様です...

#export the variable. e.g. in the terminal,
export MY_ENV_VARIABLE="hello world"

...

#in the makefile (replace before call)
echo $(MY_ENV_VARIABLE)

これは、コマンドを実行する前に置換を実行します。代わりに、コマンドの実行中に置換を行いたい場合は、エスケープする必要があります$(たとえば、これecho $MY_ENV_VARIABLEは正しくなく、make で変数を置換しようとしM、それを に追加しようとしますY_ENV_VARIABLE)...

#in the makefile (replace during call)
echo $$MY_ENV_VARIABLE
于 2013-12-10T05:46:32.967 に答える
11

シェルから変数をエクスポートしたことを確認してください。ランニング:

echo $MY_ENV_VARIABLE

シェルに設定されているかどうかを示します。ただし、サブシェルやその他のサブコマンド (make など) が表示できるようにエクスポートしたかどうかを確認するには、次のコマンドを実行してみてください。

env | grep MY_ENV_VARIABLE

そこにない場合は、必ずexport MY_ENV_VARIABLEmake を実行する前に実行してください。

make は、起動時にすべての環境変数を make 変数として自動的にインポートします。

于 2013-05-31T11:40:11.010 に答える