Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设有这个命令:
g++ main.o somefile.o -lc -o main
链接目标文件 somefile.o 和链接库 libc.a 有什么区别?
以“.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”引用。