由于我对linux上的构建过程/makefile不太熟悉,所以我运行了以下问题:
设置:我有一个makefile A,它需要在运行前设置一些环境变量,这是通过运行. ./set_A_vars.sh
(set_A_vars.sh包含许多export
行)在运行make -f A
之前完成的
现在,我需要在makefile B中创建项目A。我尝试了下面的makefile B设置:
all: debug release
A_debug:
. ./set_A_vars.sh && make -f A DEBUG=1
A_release:
. ./set_A_vars.sh && make -f A DEBUG=0
debug: A_debug some_B_stuff_debug
release: A_release some_B_stuff_debug
但是,我得到了很多错误,这些错误听起来像是set_A_vars.sh中的环境变量没有在B中为make -f A ...
设置。
如何使用makefile B中的set_A_vars.sh设置的环境变量从makefile B调用makefile A?
任何帮助都很感激。
发布于 2010-08-31 13:08:36
你的制作工具应该能用。我建议你尝试以下几种方法:
set_A_vars.sh
.make -f MakefileA
,,以验证MakefileA
确实能很好地处理这些变量集.MakefileB
中使用一条规则来测试其中一个变量,比如FOO
:test_var:@echo是$( FOO )
如果您刚刚运行了set_vars.sh
,这应该是可行的。如果没有,那就有几件事可能是错的.
FOO
)并在MakefileB
中尝试此规则:set_vars_and_test_them:./set_A_vars.sh && echo是$( FOO )
A_debug:./set_A_vars.sh & make -f MakefileA DEBUG=1
(我建议不要叫makefile“A”)
https://stackoverflow.com/questions/3608923
复制相似问题