我真的只是想要了解静态和动态链接。
当我调用unix> gcc myfile.c
之类的编译驱动程序时,crt1.o
和libc.a
(或libc.dylib
)被链接以生成ld
的可执行文件。我想猜测crt.o
是静态链接的,标准C lib是动态链接的。是
感谢您的帮助。我想我可能需要一个关于链接的新文本:S `
答案 0 :(得分:1)
想要猜测crt.o是静态链接的,标准C lib是动态链接的。是
没有
不完全是。
crt0.o
及其系列(bundle1.o
,dylib1.o
等)是目标文件,而不是库,它们根本没有链接。 libc.a
是一个静态库,因此当您链接它时,它将静态链接(即,它包含的目标文件将基本上复制到您的可执行文件)。但是,静态库也不是自己链接的。 libc.dylib
是一个动态链接的库 - 猜测它在使用时是如何链接的(当然,动态地,在这种情况下,库本身是一个链接的,正确的可执行文件)。