尤其是针对一些大型的系统代码,需要对转发代码做-O2优化,但是对于调试版本需要尽量保留调试信息做-g -O0编译,同一套代码的不同部分做两种不同的编译优化,需要在不同目录下的Makefile中进行过滤替换编译选项,方法如下:
> TARGET :=libcli.a
> ifeq ($(ARCH),SW)
> override CFLAGS:=$(filter-out -O2,$CFLAGS))
> endif
上面是过滤掉-O2编译优化选项,不同的Makefile下override 语句在target上下的位置不同,会有不同的编译效果,有时候会出现报错,需要调整位置;
> TARGET :=libcli.a
> ifeq ($(ARCH),SW)
> CFLAGS += -O1
> override CFLAGS:=$(filter-out -O2,$CFLAGS))
> endif
上面是过滤掉-O2编译优化选项,增加-O1选项,CFLAGS += -O1在override 的上下位置导致能否生效的情况也不用,和Makefie的展开方式有关,需要注意。
如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!
加入交流群
请使用微信扫一扫!