如何将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

我该如何解决?

最佳答案

您的问题尚不清楚,所以我将不得不猜测您的意思。
setenv命令是C shell的一部分,这不是Make的默认设置。您必须设置它:

SHELL = csh

然后,如果要使用该变量,则必须在设置该变量的同一命令中使用该变量,因为每个命令都在其自己的子 shell 中运行。另外,请记住转义“$”:
libmem.v1:
    setenv LD_LIBRARY_PATH . ; echo $$LD_LIBRARY_PATH

如果要让LD_LIBRARY_PATH的值是绝对路径,而不仅仅是“。”,则必须将其设置为绝对路径:
libmem.v1:
    setenv LD_LIBRARY_PATH $(PWD) ; echo $$LD_LIBRARY_PATH

10-04 14:38