【发布时间】:2011-02-15 21:25:24
【问题描述】:
假设,我写了一个小库来实现一些“fprint”——可能。教我 MMIX 的书(Das MMIX-Buch,德语)总是将整个库复制到新程序中,但我不喜欢这种方法。有没有办法将库组装成一个目标文件,将主程序组装成另一个并将这两个链接在一起?如何做到这一点?
【问题讨论】:
标签: assembly static-linking object-files mmix
假设,我写了一个小库来实现一些“fprint”——可能。教我 MMIX 的书(Das MMIX-Buch,德语)总是将整个库复制到新程序中,但我不喜欢这种方法。有没有办法将库组装成一个目标文件,将主程序组装成另一个并将这两个链接在一起?如何做到这一点?
【问题讨论】:
标签: assembly static-linking object-files mmix
查看 mmix 存储库 www.mmix.cs.hm.edu,examples 文件夹中有两个示例:Hello World GNU,逐步描述如何获取和使用 GNU 工具以及编译和链接 hello.s(汇编程序) 或 hello.c 与 C 库和第二个示例链接,在 MMIX 上运行 MMIX,它将来自不同 c 文件的 MMIX 的 MMIX 可执行文件链接在一起,并将几个汇编文件和 C 库链接在一起以实现 MMIX 的 fat32 文件系统. 马丁
【讨论】:
根据我从互联网上的简短搜索了解到,mmix 工具使用普通的 gcc 和 binutils 包。因此,我希望多个目标文件甚至标准静态库都能“正常工作”。我想知道你到底遇到了什么问题。
gcc -c lib.c -o lib.o
gcc -c main.c -o main.o
gcc lib.o main.o -o program
编辑:显然与 asm 源类似,只需使用 .s 或 .S 扩展名。当然,您也可以使用 gcc 在幕后使用的适当的汇编器和链接器命令。命令行选项 -v 将显示这些。
【讨论】: