使用Makefile终端参数实现跨平台编译控制

项目涉及x86和arm平台的编译,通过在make命令中添加参数来改变Makefile中的变量,利用ifeq条件语句选择对应编译器。这样避免了编写多个Makefile的麻烦。注意ifeq条件语句间需有空格,Makefile语法严格,错误提示模糊。
摘要由CSDN通过智能技术生成

最近做的项目经常需要在x86和arm两个平台上测试,需要使用两套编译器,一套系统自带,一套来自于交叉编译环境。这时就需要为两个平台分别编写Makefile,但颇为不便。查阅资料后得知可以使用make configure调整编译选项,又显牛刀杀鸡。
一种较为简便的方式是在使用make指令时,添加额外参数以改变脚本中某变量的值,配合Makefile中的条件语句ifeq来控制编译过程。

CFLAGS+=-Werror -O2
ifeq ($(arm),true)
    CXX=arm-hisiv300-linux-uclibcgnueabi-g++
    CC=arm-hisiv300-linux-uclibcgnueabi-gcc
    TARGETNAME=sockcli_arm
else
    CXX=g++
    CC=gcc
    TARGETNAME=sockcli
endif

$(TARGETNAME):main.o send_proc.o recv_proc.o main_proc.o
    $(CXX) $(CFLAGS) -o  $(TARGETNAME)  main.o send_proc.o recv_proc.o main_proc.o 
main.o:main.cpp send_proc.h recv_proc.h main_proc.h
    $(CXX) $(CFLAGS) -c  main.cpp
main_proc.o:main_proc.cpp main_proc.h send_proc.h recv_proc.h
    $(CXX) $(CFLAGS) -c  main_proc.cpp 
send_proc.o:send_proc.cpp send_proc.h
    $(CXX) $(CFLAG
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值