C++报错illegal instruction

25 篇文章 1 订阅

  环境描述:ubuntu18.04 + cmake version 3.10.2 + g++ version 7.5.0
  场景描述:跑程序的时候遇到了一个错误:illegal instruction。使用cmake进行编译,编译是通过的,但是运行可执行文件的时候就会报错。用gdb去查发现停在了一个很普通的函数上(而且让我最纳闷的是我之前用g++编译,最后是可以运行的)

  最后上网找到了答案(有点儿蠢),是我在int类型的函数中没有写return。这个编译的时候并没有报错,但提示了一个warning。加上return或者把函数返回值类型修改为void,程序正常运行。

  warning具体是:

warning: control reaches end of non-void function [-Wreturn-type]

  这个bug给我两个教训:
  1)以后一定要重视warning,编译通过了,程序还可能因为warning存在潜在的问题。
  2)有返回值的函数一定要写return

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值