【发布时间】:2011-01-23 21:01:44
【问题描述】:
我正在尝试在 makefile 中执行此操作,但它失败了:
M_ARCH := $(shell g++ -dumpmachine | awk '{split($1,a,"-");print a[1]}')
你知道为什么吗?我想这与逃跑有关,但是什么和在哪里?
【问题讨论】:
-
它是如何失败的?它会产生什么错误信息?你希望它做什么?
我正在尝试在 makefile 中执行此操作,但它失败了:
M_ARCH := $(shell g++ -dumpmachine | awk '{split($1,a,"-");print a[1]}')
你知道为什么吗?我想这与逃跑有关,但是什么和在哪里?
【问题讨论】:
这是美元符号,在 makefile 中您必须输入 $$ 才能获得一个美元符号:
M_ARCH := $(shell g++ -dumpmachine | awk '{split($$1,a,"-");print a[1]}')
【讨论】:
$才能得到一个。
当你开始做的时候,Make 非常笨拙。这是一个做同样事情的非 awk 版本:
space := $() #
M_ARCH := $(firstword $(subst -,$(space),$(shell g++ -dumpmachine)))
all:
$(info $(M_ARCH))
【讨论】: