linux动态库静态库的制作

   
//linux静态库的制作
 
1.命名规则:libxxx.a
2..c文件生成.o文件
    gcc -c *.c
3.将.o文件打包为.a文件
    ar rcs libtest.a *.o
    nm libtest.a    //查看静态库包函的.o文件
4.使用静态库
    测试main函数包函head.h头文件
    然后编译
    gcc main.c -I ./Include -L ./lib -l test -o main
 
//linux动态库的制作
1.命名规则:libxxx.so
2..c文件生成.o文件
    gcc -I ../Include/ -c -fpic *.c     //-fpic==-fPIC
3.将.o文件打包为.so文件
    gcc -shared -o libtest.so *.o
4.使用动态库
    a.用头文件和库文件将main.c生成可执行文件
        gcc main.c -I ./Include/ -L ./libs/ -l test -o main
    b.解决找不到动态库问题
        ldd appNmae     //查看需要的库
            动态库搜索顺序
            a.DT_RPATH          elf文件内部字段
            b.LD_LIBRARY_PATH   动态库环境变量
            c./etc/ld.so.cache  文件列表
            d./lib/,/usr/lib/   库目录
        1.把动态库扔lib里面,或扔到/usr/lib里面(有可能覆盖系统库,别用)
        2.临时修改LD_LIBRARY_PATH(关掉终端即失效)
            export LD_LIBRARY_PATH=./lib/
            export LD_LIBRARY_PATH=./lib/:$LD_LIBRARY_PATH  //追加
        3.修改环境变量文件(长久有效)
            a.用户级别配置
                配置文件位置:家目录下面 .bashrc
                追加文尾 export LD_LIBRARY_PATH=/home/xingxing/lib
                //等号左右不要空格
                source .bashrc   //重新加载.bashrc文件
                . .bashrc        //可以用.代替source
            b.系统级别配置
                /etc/profile
                export LD_LIBRARY_PATH=/home/xingxing/lib
                source .bashrc
        4.修改/etc/ld.so.conf(长久有效)
                add a line : /home/xingxing/lib
                sudo ldconfig -v    更新文件列表
        5.创建软连接
                sudo ln -s /usr/lib64/libxxx.so /usr/lib/libxxx.so
 
posted @ 2018-02-08 13:21  中国公民  阅读(89)  评论(0)    收藏  举报