我创建了两个文件:a.c和b.c,它们都是*.c文件;
然后我使用终端用命令编译两者:
gcc -c a.c
gcc -c b.c
我有两个 mach-o 文件:a.o 和 b.o;
那么我该怎么做才能链接它们并生成像 ab.o 这样的链接对象文件呢?
我尝试了以下方法:
ld a.o b.o -e main -o ab
但它拒绝了我,理由如下:
ld: warning: No version-min specified on command line
ld: dynamic main executables must link with libSystem.dylib for inferred architecture x86_64
那么接下来应该怎么做呢?
只需将它们反馈给gcc
:
gcc -o ab a.o b.o
旁注:您可能希望调用生成的文件ab.out
或ab
而不带后缀,但可能不是ab.o
,因为这通常意味着未链接的对象文件。
在此处输入图像描述
为什么将 a.o 和 b.o 链接到 ab,但 a.o 和 b.o 文本大小不是 ab.o 文本大小
0000005c != 0000002e + 0000002c