step_4补充:使用分支

这篇博客介绍了如何在Makefile中利用条件语句实现选择性编译路径,通过设置ARCH变量来区分不同的编译目标。
摘要由CSDN通过智能技术生成

使用分支

  1. 使用如下搭配来进行选择性的编译路径

     ifeq(arg1,arg2)
     /*如果arg1和arg2相等执行这里*/
     else
     /*否则执行这里*/
     endif
    
  2. 修改Makefile如下:

     #定义变量
     ARCH ?= x86
     TARGET = hello_main
     CFLAGS=-I .
     DEPS = hello_func.h
     OBJS = hello_main.o hello_func.o
     
     ifeq ($(ARCH),x86)
     CC = gcc
     else
     CC = arm-linux-gnueabihf-gcc
     endif
     
     #目标文件
     $(TARGET) : $(OBJS)
     	$(CC) -o $@ $^ $(CFLAGS)
     
     #*.o文件的生成规则
     %.o: %.c $(DEPS)
     	$(CC) -c -o $@ $< $(CFLAGS)
     
     #伪目标
     .PHONY: clean
     clean:
     	rm -f *.o hello_main
    
  3. 演示-make

     mdxz_18@mdxz18:~/lzp/workdir/base_code/linux_app/makefile_step/step_4$ make clean
     rm -f *.o hello_main
     mdxz_18@mdxz18:~/lzp/workdir/base_code/linux_app/makefile_step/step_4$ make
     gcc -c -o hello_main.o hello_main.c -I .
     gcc -c -o hello_func.o hello_func.c -I .
     gcc -o hello_main hello_main.o hello_func.o -I .
     mdxz_18@mdxz18:~/lzp/
帮我把下列代码的case后内容和 “nStepMode =” 后的内容进行调换 switch (nThirdStepMode) { case PM_UNKNOWN_MODE: { // 无法识别的第三方工步号 return false; } break; case PM_STEP_REST: { nStepMode = WORK_HOLD; } break; case PM_STEP_RANDOM_REST: { nStepMode = WORK_HOLD_RANDOM; } break; case PM_STEP_SYN_SUSPEND: { // 无法识别的第三方工步号 return false; } break; case PM_STEP_PAUSE: { nStepMode = WORK_PAUSE; } break; case PM_STEP_STOP_X: { // 无法识别的第三方工步号 return false; } break; case PM_CONST_POWER_CHARGE: { nStepMode = WORK_CP; } break; case PM_CONST_POWER_DISCHARGE: { nStepMode = WORK_DP; } break; case PM_CONST_RESISTANCE_CHARGE: { nStepMode = WORK_CR; } break; case PM_CONST_RESISTANCE_DISCHARGE: { nStepMode = WORK_DR; } break; case PM_STEP_INCUBATOR_LINK: { // TODO:处理 温箱联动 return false; } break; case PM_CONST_CURRENT_CHARGE: { nStepMode = WORK_CC; } break; case PM_CONST_CURRENT_DISCHARGE: { nStepMode = WORK_DC; } break; case PM_STEP_C_RATE_CHARGE: { nStepMode = WORK_CRATE; } break; case PM_STEP_C_RATE_DISCHARGE: { nStepMode = WORK_DRATE; } break; case PM_STEP_CCCV_CHARGE: // carefully! { nStepMode = WORK_CCCV; } break; case PM_STEP_CCCV_DISCHARGE: // carefully! { nStepMode = WORK_DCDV; } break; case PM_CONST_VOLT_CHARGE: { nStepMode = WORK_CV; } break; case PM_CONST_VOLT_DISCHARGE: // support lmtPara from V7206 { nStepMode = WORK_DV; } break; case PM_STEP_RATE_CV_CHARGE: { nStepMode = WORK_CRATECV; } break; case PM_STEP_RATE_CV_DISCHARGE: { nStepMode = WORK_DRATEDV; } break; case PM_STEP_CPCV_CHARGE: { nStepMode = WORK_CPCV; } break; case PM_STEP_CPCV_DISCHARGE: { nStepMode = WORK_DPDV; } break; case PM_STEP_LOOP: { nStepMode = WORK_WHILE; } break; default: { // 无法识别的第三方工步号 return false; } break; }
05-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值