免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1831 | 回复: 3
打印 上一主题 下一主题

用ld 链接时出现的问题,很怪啊[已经解决] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-27 07:38 |只看该作者 |倒序浏览
用ld 链接时出现的问题
好怪啊,我的AT&T汇编的hello world

  1. .data
  2. msg:
  3.     .ascii  "Hello, world!\n"       # our dear string
  4.     len = . - msg                       # length of our dear string

  5. .text
  6. #    .globl print_str
  7. #    .def        print_str;        .scl        1;        .type        32;        .endef
  8. print_str:
  9.         pushl        %edx
  10.     movl    $len,%edx       # third argument: message length(15)
  11.     movl    $msg,%ecx       # second argument: pointer to message to write
  12.     movl    $1,%ebx         # first argument: file handle (stdout)
  13.     movl    $4,%eax         # system call number (sys_write)
  14.     int     $0x80           # call kernel
  15.         popl        %edx
  16.         ret
  17. .global _start


  18. _start:
  19.     call print_str

  20. # and exit
  21.     movl    $0,%ebx         # first argument: exit code
  22.     movl    $1,%eax         # system call number (sys_exit)
  23.     int         $0x80               # call kernel
复制代码


as编译没问题,但是ld链接时,如果用
ld --entry=_start -o main main.o
就没问题,但是如果用
ld --entry=_start -o main main.o -lc
也可以生成main,但是无法执行,居然提示无该文件:


  1. wrg@desktop:~/Coding/asm/function$ as main.S -o main.o
  2. wrg@desktop:~/Coding/asm/function$ ld --entry=_start -o main main.o -lc
  3. wrg@desktop:~/Coding/asm/function$ ls
  4. main  main.o  main.S  t  t.c  t.S
  5. wrg@desktop:~/Coding/asm/function$ ./main
  6. bash: ./main: No such file or directory
复制代码

看看文件头,是elf文件啊,麻烦大大们帮看看咯

[ 本帖最后由 ShellEx 于 2007-6-27 17:31 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-06-27 11:53 |只看该作者
光看文件头是elf文件不一定行, readelf -a <filename> |grep -i interp看看? 说不定解析器没指定好, execve找不到解析器

论坛徽章:
0
3 [报告]
发表于 2007-06-27 12:14 |只看该作者
这样创建可执行文件,调用ld时,不需要-m elf_i386 和-dynamic-linker /lib/ld-linux.so.2吗?

论坛徽章:
0
4 [报告]
发表于 2007-06-27 17:32 |只看该作者
谢谢您!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP