3

setenv LD_LIBRARY_PATH .に追加するにはどうすればよいMakefileですか? Makefile で同じ用語を使用し、変数を使用してエコーすると、絶対パスではなく別のフォルダーでもecho $LD_LIBRARY_PATH .常に結果として受け取り、このエラーが発生します。.setenv LD_LIBRARY_PATH . make: setenv: Command not found

ll:libmem.v1

libmem.v1:
    gcc -g -c -fpic libmem.v1.c -Wall
    gcc -shared -o libmem.so libmem.v1.o
    gcc -lmem -L. -o main main.c -Wall 
    setenv LD_LIBRARY_PATH .

clean:
    rm -f libmem.v1
    rm -f *.py

これを修正するにはどうすればよいですか?

4

1 に答える 1

2

あなたの質問は不明確なので、あなたの言いたいことを推測する必要があります。

このsetenvコマンドは、Make のデフォルトではない C シェルの一部です。次のように設定する必要があります。

SHELL = csh

次に、変数を使用する場合は、変数を設定する同じコマンドで使用する必要があります。これは、各コマンドが独自のサブシェルで動作するためです。また、「$」をエスケープすることを忘れないでください。

libmem.v1:
    setenv LD_LIBRARY_PATH . ; echo $$LD_LIBRARY_PATH

の値を「.」だけでなく絶対パスにしたい場合はLD_LIBRARY_PATH、絶対パスに設定する必要があります。

libmem.v1:
    setenv LD_LIBRARY_PATH $(PWD) ; echo $$LD_LIBRARY_PATH
于 2013-10-19T10:17:06.440 に答える