共享链接库执行出现illegal instruction

xiaoxiaomuyu2010 2013-03-04 10:58:47
我编写可执行程序调用so文件:

1、一开始只有一个so文件,通过可执行程序调用没有问题;

2、后来增加一个so文件,并且在Makefile中添加了对应的路径,编可执行程序没有问题,但是执行的时候出现了illegal instruction,求各位指点!
...全文
496 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fdl19881 2013-03-04
  • 打赏
  • 举报
回复
引用 楼主 xiaoxiaomuyu2010 的回复:
我编写可执行程序调用so文件: 1、一开始只有一个so文件,通过可执行程序调用没有问题; 2、后来增加一个so文件,并且在Makefile中添加了对应的路径,编可执行程序没有问题,但是执行的时候出现了illegal instruction,求各位指点! so ……
汇编出来的指令是错的? 没遇到过. 增加的so文件是你自己编译的吗? 或者是别人编译好的,那么平台是否一致. 使用命令file xxx.so 如file /usr/lib/libpth.so.20.0.27 /usr/lib/libpth.so.20.0.27: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=0x7ae17e4e656c3202a7829eb72105618ca8ba3a7b, stripped 你对比下你的2个so吧.
fdl19881 2013-03-04
  • 打赏
  • 举报
回复
引用 2 楼 xiaoxiaomuyu2010 的回复:
引用 1 楼 fdl19881 的回复:引用 楼主 xiaoxiaomuyu2010 的回复:我编写可执行程序调用so文件: 1、一开始只有一个so文件,通过可执行程序调用没有问题; 2、后来增加一个so文件,并且在Makefile中添加了对应的路径,编可执行程序没有问题,但是执行的时候出现了illegal instruction,求各位指点! ……
如果是普通桌面程序,那检查是否存在越界访问等. 如果是交叉编译类的,这是GOOGLE结果: http://www.google.com.hk/#hl=zh-CN&newwindow=1&safe=strict&q=illegal+instruction+linux&revid=1497133213&sa=X&ei=c1g0Ua6qN7GuiQenqICgBg&ved=0CH4Q1QIoAA&bav=on.2,or.r_gc.r_pw.&bvm=bv.43148975,d.aGc&fp=49ca3a6f08282d5a&biw=1440&bih=814
xiaoxiaomuyu2010 2013-03-04
  • 打赏
  • 举报
回复
引用 1 楼 fdl19881 的回复:
引用 楼主 xiaoxiaomuyu2010 的回复:我编写可执行程序调用so文件: 1、一开始只有一个so文件,通过可执行程序调用没有问题; 2、后来增加一个so文件,并且在Makefile中添加了对应的路径,编可执行程序没有问题,但是执行的时候出现了illegal instruction,求各位指点! ……
两个so文件都是我自己单独编的,使用的也是同一个平台,实际的调用关系是我的可执行程序调用其中的一个so文件,这个so文件中又有符号表是在另一个so文件中的,所以我在编可执行程序的时候需要添加两个so文件

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧