Linux编译报错 Error: no such instruction

在CentOS6上安装R包pagoda2时遇到编译错误,错误提示为'Error: no such instruction'。通过删除安装包的Makefile文件中的特定指令并重新编译,问题得以解决。此解决方案可能适用于其他类似编译错误。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

  • Bug: 在centos6上安装R包pagoda2,编译过程报错 Error: no such instruction
/tmp/cctegr8g.s: Assembler messages:
/tmp/cctegr8g.s:40863: Error: no such instruction: `shlx %rdi,%rsi,%rsi'
/tmp/cctegr8g.s:40866: Error: no such instruction: `shrx %rdi,%rdx,%rdx'
/tmp/cctegr8g.s:40964: Error: no such instruction: `shlx %rdi,%rdx,%rdx'
/tmp/cctegr8g.s:40967: Error: no such instruction: `shrx %rdi,%rax,%rax'
/tmp/cctegr8g.s:62335: Error: no such instruction: `shlx %rcx,%rdx,%rdx'
/tmp/cctegr8g.s:62337: Error: no such instruction: `shrx %rcx,%rdx,%rdx'
/tmp/cctegr8g.s:62440: Error: no such instruction: `shlx %rbx,%rdx,%rdx'
/tmp/cctegr8g.s:62443: Error: no such instruction: `shrx %rbx,%rax,%rax'
make[1]: *** [hnsw.o] Error 1
make[1]: Leaving directory `/tmp/RtmpEOL4So/R.INSTALL798540297721/pagoda2/src/n2'
make: *** [sublibraries] Error 1
ERROR: compilation failed for package ‘pagoda2’
  • 解决方案:删除安装包Makefile文件里的 -march=native, 重新编译即可
# 查找文件
tmp=$(grep -r "march=native" ./)
fname=$(echo $tmp | awk -F':' '{print $1}')
# 删除指定内容
sed -i 's/-march=native//g' $fname
  • 其他软件编译出现类似bug可尝试参照解决

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值