makefile 生成动态库和静态库的区别

如题所述

生成动态库的时候要注意,编译生成目标文件的时候加上-fPIC参数,生成位置无关的可重定位代码,然后链接的时候加上-shared生成动态共享库。比如一个hello.c,生成静态库:

gcc -o hello.o -c hello.c
ar rcs libhello.a hello.o

生成动态库的命令:

gcc -fPIC hello.o -c hello.c
gcc -shared -o libhelllo.so hello.o

还有一个区别是:静态库参与链接过程,而动态库不链接到可执行文件中,可执行程序在运行的时候,对应的动态库也要加载到内存中,否则可执行程序运行不了。

更多详细细节,可以百度搜索视频教程:Makefile工程实践

温馨提示:答案为网友推荐,仅供参考
相似回答