Linux 在Makefile中设置环境变量
如何将Linux 在Makefile中设置环境变量,linux,bash,makefile,environment-variables,Linux,Bash,Makefile,Environment Variables,如何将setenv LD\u LIBRARY\u路径添加到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 -share
setenv LD\u LIBRARY\u路径添加到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中操作。此外,请记住避开“$”:
如果希望LD_LIBRARY_PATH
的值为绝对路径,而不仅仅是“.”,则必须将其设置为绝对路径:
libmem.v1:
setenv LD_LIBRARY_PATH $(PWD) ; echo $$LD_LIBRARY_PATH
将
csh
与make一起使用确实不起作用csh
有一些完全奇怪和非标准的“特性”;例如,它自己关闭各种文件描述符,这意味着并行构建无法正常工作。我本以为到2013年,csh将悄无声息地死去,这是当之无愧的,当然是在编写脚本方面。看到新来的人仍在使用它,我感到非常难过:-(。趁现在还不太晚,赶快出去!!
libmem.v1:
setenv LD_LIBRARY_PATH $(PWD) ; echo $$LD_LIBRARY_PATH