【问题标题】:Linux MAKEFILE access environment variableLinux MAKEFILE 访问环境变量
【发布时间】:2016-12-18 23:42:00
【问题描述】:

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

 echo $(pkg-config --libs opencv)

结果如下:

但如果我像这样从 MAKEFILE 运行它:

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

什么都没有打印出来,发生了什么?

【问题讨论】:

  • 请复制粘贴终端命令和输出,不要使用截图。

标签: c++ linux opencv makefile


【解决方案1】:

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

试试这个:

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

使用它,您可以打印名为 pkg-config(或类似名称)的变量的值。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      最简单正确的方法是

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

      使用shell makefile 函数是不必要的,实际上并不能纠正 OP 代码的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-21
        • 2021-03-16
        • 2017-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多