2012-05-10 63 views
1

全部,如何在makefile中指定编译器?

我试图修改一个Makefile以使用嵌入式交叉编译器而不是PC的编译器。 Makfile没有正常的CC或CXX变量。实际上,它似乎是用变量'@ $ {MAKE}'调用另一个makefile。我如何覆盖'@ $ {MAKE}'变量来强制makefile使用不同的compliler?

由于事先

# 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,现在我收到的消息之下,不知道该怎么办?

make[1]: Nothing to be done for `/home/botbear/openwrt/trunk/staging_dir/toolchain-arm_v6k_gcc-linaro_uClibc-0.9.32_eabi/bin/arm-openwrt-linux-uclibcgnueabi-g++'. 
+0

与使用* unmodified * makefile再次运行时得到的消息不同吗? – Beta

+0

未修改的makefile运行时没有错误。 –

+1

我们需要更多信息。如果你使用json,会发生什么?如果你让“openjaus”做什么?生成文件'json.make'和'openjaus.make'小到可以发布吗? – Beta

回答

1

你必须往里json.makeopenjaus.make,看看他们如何建立程序。如果他们使用常规变量,则可能会执行类似操作:

${MAKE} CC=/usr/bin/gcc-arm CXX=/usr/bin/g++-arm --no-parent-directory ... 
+0

或者,您是否已经尝试过'make help'? –

+0

是的,我试过帮忙。感谢您的回应,它有所帮助。我用我收到的新消息更新了我的帖子。 –