C、C++编译,链接,extern链接
1 //b.cpp 2 3 #inlcude <iostream> 4 5 void b() 6 { 7 std::cout<<"fun b"; 8 } 9 10 //a.cpp 11 extern void b(); 12 13 int main() 14 { 15 b(); 16 return 0; 17 } 18 19 //makefile 20 testA: a.o b.o 21 g++ -o testA a.o b.o 22 23 clean: 24 rm testA a.o b.o
b.cpp 和 a.cpp之间没有任何联系,编译时可以分别编译通过生成a.o和b.o,链接时a.o中的b()没有定义,编译器自动的从b.o中查找到。
这里简单的体现了C语言的单独编译,相互链接的过程,即单独生成“.o”文件,共同生成执行文件。
**************************************************************
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对困难,能够不休不眠;面对压力,能够迎接挑战。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想,用智慧把属于自己的事业开创。其实我是一个程序员[=.=]
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对困难,能够不休不眠;面对压力,能够迎接挑战。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想,用智慧把属于自己的事业开创。其实我是一个程序员[=.=]