Error: no such instruction 问题处理(去掉march优化)
来源:互联网 发布:android安装 mysql 编辑:程序博客网 时间:2024/05/17 07:17
我的gcc从4.2升级到6.2之后编译程序就出现的如下错误:
/tmp/ccI5xBw4.s:422: Error: no such instruction: `sarx %eax,%edx,%eax' /tmp/ccI5xBw4.s:448: Error: no such instruction: `shlx %eax,%ecx,%eax' /tmp/ccI5xBw4.s:1043: Error: no such instruction: `shlx %eax,%ecx,%eax' /tmp/ccI5xBw4.s:1086: Error: no such instruction: `shlx %eax,%ecx,%eax' /tmp/ccI5xBw4.s:1210: Error: no such instruction: `shlx %eax,%edx,%eax' /tmp/ccI5xBw4.s:4030: Error: no such instruction: `shlx %eax,%ecx,%eax'
开始查到这是一类新的Intel指令。需要能够支持这类新指令的汇编器,即binutils。我的CentOS 6.7上已经用yum安装了binutils,版本为2.20.51.0.2,并没有解决。试着直接下载binutils最新版,编译安装。重新编译,不再报这个错误。
本以为一切已经OK,但下面的事情才是灾难开始。
装完最新的binutils后发现很多系统功能都失效了,首先是ssh不能用,之后gdb也出现了问题,一路查下去发现是/lib64目录下面的ld-2.12.so被替换为ld-2.17.so,但该目录下的原来指向ld-2.12.so的软连接ld-linux-x86-64.so.2并没有指向ld-2.17.so。个人猜测重新启动可能能够恢复(并没有试过,如果导致机器起不来可要骂我)。
好吧我手贱并不知道ld-2.17.so这个文件有什么用,竟然用mv把它移到了/lib64外面,最崩溃的事情来了,包括ls,mv,cp等一系列的系统命令都不能用了,只能重装系统。
系统装好后又遇到了最开始的问题,这次我可不敢随便升级binutils的版本了。好吧既然是Intel的指令应该就是针对不同cpu来优化代码用的。那我不做这种优化总行了吧。
在Makefile文件中找到“-march=”这一条,我这里是“-march=native”,直接注释掉,再编译就通过了。
说明:“-march”选项是指定目标架构的名字,gcc就会生成针对目标架构优化的目标代码,如-march=prescott会生成针对i5或i7的目标码,从而充分发挥cpu的性能。自gcc4.2,引入了-march=native,从而允许编译器自动探测目标架构并生成针对目标架构优化的目标代码,这比手工设置要安全的多。
- Error: no such instruction 问题处理(去掉march优化)
- Error: no such instruction: `pushad'
- Error: no such instruction: `swpb %cl,%dl,[%edi]'
- Error: no such instruction: `ldr r0,=0x53000000'
- Linux下出现error:no such instruction错误
- Error: no such instruction: `swpb %cl,%dl,[%edi]
- Error: no such instruction: `ldr sp,=4096'
- Zedboard移植QT库的问题:QT_INSTALL/include/QtCore/qatomic_arm.h:131: Error: no such instruction: `swpb %al,
- GCC 4.8编译程序抛出Error: no such instruction: `某某汇编指令`
- QT编程解决Error: no such instruction: `swpb %cl,%dl,[%edi]'
- error:no such partition.grub rescue>问题
- 问题error: no such file or directory:xxx的处理方法
- Error: no such column
- SQLite error,no such table的处理方法
- Ubuntu升级失败造成无法进入系统(error:no such partition)问题的修复
- error: QtSql: No such file or directory 问题
- 编译openblas报错:no such instruction: vpermpd
- Qt error: no such slot
- TensorFlow学习(一)入门
- jsp中<jsp:forward page=""/>和response.sendRedirect("")两种跳转的区别
- 计算机视觉之跟踪算法——CamShift跟踪算法
- 问题 A: 那些年我们一起考过的浙大
- 使用IntelliJ IDEA开发SpringMVC网站(一)开发环境
- Error: no such instruction 问题处理(去掉march优化)
- 【寻找最佳小程序】02期:腾讯旅游首款小工具“旅行小账本”——创意及研发过程大起底
- 一个简单的时间插件
- 编写简单shell
- logback日志系统---logback.xml文件手动配置
- CUDA系列学习(二)CUDA memory & variables
- 深入理解DM8168中的线程通信
- 分析支付宝客户端的插件机制
- 关于内存泄漏的一些小常识