3

假设有这个命令:

g++ main.o somefile.o -lc -o main

链接目标文件 somefile.o 和链接库 libc.a 有什么区别?

4

1 回答 1

4

以“.a”结尾的文件是存档文件。它们本质上包含一组“.o”。因此,假设“libc.a”包含“c1.o”、“c2.o”和“c3.o”,您的命令本质上等同于取消归档“libc.a”,然后调用:

g++ main.o somefile.o c1.o c2.o c3.o -o main

请注意,“.a”中包含的对象仅在需要时才包括在内,即,如果它们的至少一个符号被另一个“.o”引用。

于 2012-06-27T16:43:21.847 回答