Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11071
  • 博文数量: 4
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 60
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-23 09:56
文章分类

全部博文(4)

文章存档

2014年(4)

我的朋友

分类: C/C++

2014-09-18 16:05:19

 

装了ubuntu server 64bit版本,安装完gcc工具链后,下载版本进行编译,在编译linux内核时,报“./mksymtbl  -bash: ./mksymtbl: No such file or directory”,查看路径,文件存在,而且权限是可执行的。上网查询,原来No such file or directory并不只是文件找不到,还存有文件格式不可执行等其他原因,执行ldd mksymtbl,返回not a dynamic executable;再次执行file mksymtbl,返回mksymtbl: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped,原来mksymtbl32位程序,而ubuntu server64位系统,没有包含32位的库,因此程序执行不成功。执行readelf -l mksymtbl,结果如下:

Elf file type is EXEC (Executable file)

Entry point 0x80487a0

There are 7 program headers, starting at offset 52

Program Headers:

  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align

  PHDR           0x000034 0x08048034 0x08048034 0x000e0 0x000e0 R E 0x4

  INTERP         0x000114 0x08048114 0x08048114 0x00013 0x00013 R   0x1

      [Requesting program interpreter: /lib/ld-linux.so.2]--------需要该链接库

  LOAD           0x000000 0x08048000 0x08048000 0x05070 0x05070 R E 0x1000

  LOAD           0x005070 0x0804e070 0x0804e070 0x00374 0x32894 RW  0x1000

  DYNAMIC        0x005084 0x0804e084 0x0804e084 0x000c8 0x000c8 RW  0x4

  NOTE           0x000128 0x08048128 0x08048128 0x00020 0x00020 R   0x4

  GNU_STACK      0x000000 0x00000000 0x00000000 0x00000 0x00000 RW  0x4

 Section to Segment mapping:
 

  Segment Sections...

   00    

   01     .interp

   02     .interp .note.ABI-tag .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .plt .text .fini .rodata .eh_frame

   03     .ctors .dtors .jcr .dynamic .got .got.plt .data .bss

   04     .dynamic

   05     .note.ABI-tag

   06    

因此在该机器上安装ia32-libs库,即可解决该问题。

阅读(384) | 评论(0) | 转发(0) |
0

上一篇:C++的引用(一)

下一篇:没有了

给主人留下些什么吧!~~