免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: sherf
打印 上一主题 下一主题

编译调试 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-06-02 17:38 |只看该作者
试试  gcc -o tiger tiger.o runtime.o

论坛徽章:
0
12 [报告]
发表于 2009-06-02 22:48 |只看该作者

回复 #10 sherf 的帖子

ld 的功能為object files 鏈結成可執行檔或是relocateable object code, 若object files有使用到其他的library,如runtime.c 裡頭使用到standard I/O library(stdio.h)或是其他的library,那便需要告知 ld 將這些library也 link 進來,並根據腳本檔案(script file)將程式碼分配在適當的區塊。

所以不能僅提供runtime.o 尚須提供相關的library。

另外,一個程式要能執行,需要準備執行環境,所以除了使用到的library之外,尚須提供 ld 一些程式執行環境初始化與程式結束執行時的 house keeping functions. 以GCC for ARM ELF 為例,crtbegin.o crti.o crt0.o crtend.o crtn.o 便是便演了這些角色的 object files,請記住,不同的toolchain所提供的執行環境設定檔案是不同的。

以下是一個類似的例子,collect2 雖然不是ld不過他會呼叫ld來完成link的動作,所以他的參數設定是很有參考性的。

/home/nore/bin/libexec/gcc/arm-elf/4.1.2/collect2 -X -o dhry /home/nore/bin/lib/gcc/arm-elf/4.1.2/crti.o /home/nore/bin/lib/gcc/arm-elf/4.1.2/crtbegin.o /home/nore/bin/lib/gcc/arm-elf/4.1.2/../../../../arm-elf/lib/crt0.o -L/home/nore/bin/lib/gcc/arm-elf/4.1.2 -L/home/nore/bin/lib/gcc/arm-elf/4.1.2/../../../../arm-elf/lib /home/nore/tmp/ccGxlMIF.o --start-group -lgcc -lc --end-group /home/nore/bin/lib/gcc/arm-elf/4.1.2/crtend.o /home/nore/bin/lib/gcc/arm-elf/4.1.2/crtn.o
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP