gcc:静态库、动态库的生成、调用

静态库:链接程序时,直接链接到可执行程序中,执行程序时,直接加载到内存中。

动态库:存放在/lib64目录中,执行程序时,执行到动态库所包含的函数时,需要临时加载。

1、生成静态库 libXXX.a
gcc -c XXX.c XXX.h -o XXX.o #生成.o文件
ar -rcs libXXX.a XXX.o   #打包.o文件成静态库

2、调用静态库
gcc -L. -lXXX main.c -o XXX
-L :指定静态库文件路径,.表示当前目录
-l :指定静态库名
-o :指定要生成文件的名

3、生成动态库 libXXX.so
gcc -fPIC XXX.c -o XXX.o
-fPIC :生成与位置无关的.o文件
gcc -shared XXX.o -o libXXX.so
-shared :生成动态库文件
以上两条可缩写为
gcc -fPIC -shared XXX.c -o libXXX.so

4、调用动态库
gcc -L. -lXXX main.c -o XXX
注:动态库最好放在/bin64目录中,或其他指定的目录中,不然程序可能找不到动态库的位置。
可在/etc/ld.so.conf文件中添加库的搜索路径。

posted @ 2017-03-27 16:26  宁静淡泊  阅读(299)  评论(0)    收藏  举报