C、C++编译,链接,extern链接

时间:2023-03-09 08:47:22
C、C++编译,链接,extern链接
 //b.cpp

 #inlcude <iostream>

 void b()
{
std::cout<<"fun b";
} //a.cpp
extern void b(); int main()
{
b();
return ;
} //makefile
testA: a.o b.o
g++ -o testA a.o b.o clean:
rm testA a.o b.o

b.cpp 和 a.cpp之间没有任何联系,编译时可以分别编译通过生成a.o和b.o,链接时a.o中的b()没有定义,编译器自动的从b.o中查找到。

这里简单的体现了C语言的单独编译,相互链接的过程,即单独生成“.o”文件,共同生成执行文件。