linux动态库
来源:互联网 发布:怎么做数据分析 编辑:程序博客网 时间:2024/06/11 21:44
CSDN博客 img callinglove linux下动态库的使用发表于2015/11/6 13:47:41 650人阅读分类: linux 编译时与运行时库的路径运行时动态库的路径搜索顺序编译目标代码时指定的动态库搜索路径(指的是用-wl,rpath或-R选项而不是-L); gcc -Wl,-rpath,/home/arc/test,-rpath,/usr/local/lib test.c 1 环境变量LD_LIBRARY_PATH指定的动态库搜索路径; export LD_LIBRARY_PATH=/root/test/env/lib ./main 1 2 或者 LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH ./main 1 配置文件/etc/ld.so.conf中指定的动态库搜索路径; 更改/etc/ld.so.conf文件后记得一定要执行命令:ldconfig!该命令会将/etc/ld.so.conf文件中所有路径下的库载入内存中默认的动态库搜索路径/lib; 默认的动态库搜索路径/usr/lib。编译时查找库的搜索路径编译时使用-L指定库的路径; gcc main.c -o main -L./ -lcac 通过环境变量LIBRARY_PATH指定搜索路径 LIBRARY_PATH=.:$LIBRARY_PATH gcc main.c -o main -lcac 系统标准路径/lib /usr/lib /usr/local/lib 比较编译时查找的是静态库或动态库,而运行时查找的只是动态库; gcc参数-L指定编译时的链接路径,-Wl,-rpath指定运行时链接路径; 编译时使用环境变量LIBRARY_PATH指定库的路径,运行时使用环境变量LD_LIBRARY_PATH或/etc/ld.so.conf指定库的路径; 编译时用的链接器是ld,而运行时用的链接器是/lib/ld-linux.so.2; 编译时与运行时都会查找默认路径:/lib /usr/lib; 编译时还有一个默认路径:/usr/local/lib,而运行时不会默认找查该路径。动态库使用实例定义库的头文件 /*caculate.h*/ #ifndef CACULATE_HEAD_ #define CACULATE_HEAD_ //加法 int add(int a, int b); //减法 int sub(int a, int b); //除法 int div(int a, int b); //乘法 int mul(int a, int b); #endif 1 2 3 4 5 6 7 8 9 10 11 12 13 14 库中函数的实现 /*caculate.c文件*/ #include "caculate.h" //求两个数的和 int add(int a, int b) { return (a + b); } //减法 int sub(int a, int b) { return (a - b); } //除法 int div(int a, int b) { return (int)(a / b); } //乘法 int mul(int a, int b) { return (a * b); }
0 0
- linux 动态加载动态库
- linux 动态加载动态库
- linux 动态加载动态库
- Linux 动态库剖析
- Linux 动态库剖析
- Linux 动态库剖析
- Linux 动态库剖析
- linux lib 动态库
- linux 调试动态库
- Linux 动态库剖析
- Linux 动态库剖析
- linux 动态链接库
- Linux 动态库剖析
- Linux动态库
- Linux如何查找动态库
- Linux 动态库剖析
- linux动态库介绍
- Linux 动态库剖析
- while(cin>>ch)如何退出
- windows下简单的C语言服务器(TCP)
- VR系列——Oculus Rift 介绍指南:一、前言
- 5.4.2节练习--- c++中多次cin会出现的问题。
- poj 2181 Jumping Cows 贪心
- linux动态库
- 数组初始化是在编译器还是在运行期?
- csu1777——大还是小?(字符串处理?)
- hibernate教程--关联关系的映射详解
- 微信授权登录问题汇总
- [牛客]插入排序练习题
- PAT 1015. 德才论
- Js_面向对象_canvas_03
- (c语言)链表方法:13个人一次报号,报道3的人退出,输出最后一个人