linux下c的共享库和静态库

来源:互联网 发布:南昌淘宝运营公司 编辑:程序博客网 时间:2024/05/18 02:06
#############1、动态库/共享库:


gcc -fPIC -c 库源文件        //生成相对地址的.o文件
gcc -shared -o libmy_lib.so *.o      //以*.o生成名为my_lib的共享库


当main.c要用到共享库时
gcc main.c -o main -L. -lmy_lib        //-L后面接共享库的路径   -l后面接共享库的名字除去开头的lib和结尾的.so的中间部分
或者gcc main.c ./libmy_lib.so -o main 


这时生成的main可执行程序,你会发现也执行不了,提示找不到共享库,这时有两个办法:
1、把共享库文件cp到默认的库目录/lib或/usr/lib下
2、修改/etc/ld.so.conf文件 在末尾追加你想要添加的路径,保存退出后ldconfig -v即可




#############2、静态库:
gcc -c 库源文件    //生成.o文件
ar -rc libmy_lib.a *.o   //以*.o生成名为my_lib的静态库


当main.c要用到静态库时
gcc main.c -o main -L. -lmy_lib     //-L后面接静态库的路径     -l后面接静态库的名字除去开头的lib和结尾的.a的中间部分
或者gcc main.c ./libmy_lib.a -o main 


这时生成的main可执行程序即可直接运行




#############3、ldd 程序名       //查看当前可执行程序运行所需要的库文件
0 0
原创粉丝点击