Linux MAKEFILE访问环境变量

时间:2016-08-12 04:17:10

标签: c++ linux opencv makefile

我在Linux中安装OpenCV库。如果我运行命令:

 echo $(pkg-config --libs opencv)

结果如下: enter image description here

但如果我从MAKEFILE中运行它:

all:
    @echo 1
    @echo $(pkg-config --libs opencv)
    @echo 2

什么都没有打印出来,发生了什么? enter image description here

3 个答案:

答案 0 :(得分:3)

您在shell命令中忘记了shellhttps://www.gnu.org/software/make/manual/html_node/Shell-Function.html

试试这个:

@echo $(shell pkg-config --libs opencv)

有了它,你打印了一个名为pkg-config的变量的值(或类似的东西)。

答案 1 :(得分:1)

make不是shell,语法不同。您可能希望让Makefile回显在shell中运行pkg-config的结果,因此:

all:
    @echo 1
    @echo $(shell pkg-config --libs opencv)
    @echo 2

答案 2 :(得分:0)

最简单和正确的方法是

all:
    @echo $$(pkg-config --libs opencv)

使用shell makefile函数是不必要的,并且实际上并没有纠正OP代码的错误。