我想perl -MConfig -e 'print $Config{archlib}'
在我的 makefile 中运行命令并使用它在我的LDFLAGS
. 谁能帮我。我尝试了不同的使用方式,$(shell ..)
但没有奏效
我想做这样的事情
PERLPATH = $(shell 'perl -MConfig -e "print $Config{archlib}"')
LDFLAGS += -L/usr/lib64/perl5/CORE
谢谢!!
在 Makefile 中,如果您不想make
解释它们,则必须使用双美元符号。但是,请避免使用双引号,因为 shell 会尝试扩展变量。
PERLPATH = $(shell perl -MConfig -e 'print $$Config{archlib}')
您应该指定它不起作用的意思。提问时,您应该始终提供您运行的确切命令和生成的确切错误。
但是,您调用的问题shell
是您引用了整个命令。您应该直接输入要运行的命令,就像在 shell 提示符下键入它一样。这意味着您需要在 shell 脚本周围使用单引号,或者$
从 shell 中转义。然后你需要$
通过加倍来逃避制造。基本上,您应该让命令在您的 shell 提示符下正确运行,然后简单地将该字符串剪切并粘贴到shell
函数中。然后更改 to 的每个实例$
以$$
将其从 make 中转义。
你也应该(为了提高效率)使用:=
:
PERLPATH := $(shell perl -MConfig -e 'print $$Config{archlib}')
当然你想使用这个路径变量:
LDFLAGS += -L$(PERLPATH)/CORE