假设有这个命令:
g++ main.o somefile.o -lc -o main
链接目标文件somefile.o和链接库libc.a?
有什么区别答案 0 :(得分:2)
以“.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”引用。