小编Dan*_*lat的帖子

为什么环境变量在 $(shell) 命令中不起作用?

export HELLO=Hello,world
all:
        @echo $(HELLO)
        @echo $(shell echo $$HELLO)
        @echo `echo $$HELLO`
Run Code Online (Sandbox Code Playgroud)

输出:

Hello,world

Hello,world
Run Code Online (Sandbox Code Playgroud)

为什么反引号和 $(shell) 之间存在差异,有没有办法将环境变量传递给 $(shell) 调用?

我试图在交叉编译环境中使用pkg-config,所以我需要设置$PKG_CONFIG_SYSROOT。我可以使用反引号,但它会为每个 .o 文件执行一次。根据计算 Makefile 变量分配,我需要使用 PKG_CFLAGS := $(shell pkg-config $(PACKAGES)),但我无法传递所需的环境变量以使其正常工作。

在 GNU Make 4.0 上测试。

makefile

4
推荐指数
1
解决办法
6万
查看次数

标签 统计

makefile ×1