#–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 |
|
来自: 海漩涡 > 《knowledge》