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命令是 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
于 2013-10-19T10:17:06.440 回答