一、编译动态库
#–fPIC:表示编译为位置独立的代码,不用此选项的话编译后的代码是位置相关的所以动态
#载入时是通过代码拷贝的方式来满足不同进程的需要,而不能达到真正代码段共享的目的。
#–shared:指明编译成动态库
// Makefile
all:
gcc libpthread.c -fPIC -shared -o libMpthread.so
clean:
rm -rf *.o *.so
=========================================================================
二、编译应用程序时使用动态库
gcc main.c -o main -lMpthread -L ./lib -I ./inc -lpthread
库名:libMpthread.so
链接库时:去掉库名开头的lib和结尾的.so,然后加上-l就成了 -lMpthread
指定存放库位置: -L
指定库中函数头文件位置:-I
=========================================================================
三、运行应用程序时动态库存放位置
默认位置:/lib 和 /usr/lib
四、相关函数
查看库中包含函数:nm *.so
查看应用程序链接的库:ldd 应用程序
动态链接库位置环境变量:LD_LIBRARY_PATH
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。