国产平台申威飞腾不同编译选项启动挂死问题解决

由于不同国产平台对GCC编译器适配的不太好,相同一段代码编译运行,使用不同的编译优化选项运行导致有启动不了、挂死等问题;尤其是针对一些大型的系统代码,需要对转发代码做-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的展开方式有关,需要注意。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值