分享

动态库编译与使用

 海漩涡 2016-04-10


一、编译动态库

#–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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多