【发布时间】:2012-05-11 15:51:40
【问题描述】:
全部,
我正在尝试从命令行传递要 make 的变量。我的命令在下面
make ARCH=arm CROSS_COMPILE=/my_dir/bin/arm-openwrt-linux-g++
我收到的错误是
g++: error: arm: No such file or directory
但文件 'arm-openwrt-linux-g++' 确实存在。
我认为问题是我需要将变量传递给子制作文件。可以提供一些有关如何从命令行将变量传递给子生成文件的示例的帮助。我尝试使用 make 的 -e 和导出选项,但看不到任何工作。
谢谢
makefile 的内容:
# GNU Make solution makefile autogenerated by Premake
# Type "make help" for usage help
ifndef config
config=debug
endif
export config
PROJECTS := json openjaus
.PHONY: all clean help $(PROJECTS)
all: $(PROJECTS)
json:
@echo "==== Building json ($(config)) ===="
@${MAKE} --no-print-directory -C .build -f json.make
openjaus: json
@echo "==== Building openjaus ($(config)) ===="
@${MAKE} --no-print-directory -C .build -f openjaus.make
【问题讨论】:
-
如果我们看不到它们,我们无法猜测您的 Makefile 中发生了什么。
-
是否需要文件的内容来评估命令行是否正确?我的基本问题是我正确地传递了变量。如有需要,我会提供文件内容。
-
你传递它们的方式没有明显的错误;这就是我发表评论的原因。您的 Makefile 中发生了一些事情来触发该错误,这在您显示的调用中并不明显。
-
我已将 makefie 的内容添加到原始帖子中。谢谢
-
仍然没有迹象表明哪里出了问题;您确实需要安排将您的设置传递给子
makes,可能通过显式调用 (${MAKE} ARCH=${ARCH} ...)。
标签: makefile