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文件中添加库的搜索路径。
浙公网安备 33010602011771号