Linux静态和动态链接库使用实例
2015-02-06 16:59
302 查看
Linux静态和动态链接库使用实例
Ø 不同于Win32DLL,Linux标准对象中的所有函数都是直接导出的,都可以被调用程序所访问。也就是说不用头文件即可被导出。Ø 静态和动态的区别
静态库的代码在编译时已经进入被包含到目标文件了;而动态库的代码要在目标文件运行的时候才会被包含进去,在编译的时候只是对动态库进行一个链接。
1、静态链接库实例
//fun1.h #include <stdio.h> void fun1printf(); //////////////////////////////////////////////////////////////////////////////////////////// //fun1.c #include "fun1.h" void fun1printf() { printf("fun1printf!/n"); } //////////////////////////////////////////////////////////////////////////////////////////////// //fun2.h #include <stdio.h> void fun2printf(); //////////////////////////////////////////////////////////////////////////////////////////////// //fun2.c #include "fun2.h" void fun2printf() { printf("fun2printf!/n"); } ///////////////////////////////////////////////////////////////////////////////////////////////////// //staticcall.c #include <stdio.h> int main() { fun1printf();//不需要导入,直接引用函数 } /////////////////////////////////////////////////////////////////////////////////////////////////////// //makefile all:staticlib main staticlib:fun1.c fun2.c gcc -c -o fun1.o fun1.c gcc -c -o fun2.o fun2.c ar cqs libfun.a fun1.o fun2.o main:staticcall.c libfun.a gcc -o staticcall staticcall.c -L ./ -lfun |
2、动态链接库实例
所有文件同静态链接库,只是makefile编写不一样。all:sharedlib sharedcall sharedlib:fun1.c fun2.c gcc -fPIC -c fun1.c -o fun1.o gcc -fPIC -c fun2.c -o fun2.o gcc -shared fun1.o fun2.o -o libfun.so sharedcall: gcc -o sharedcall -L ./ -lfun sharedcall.c |
在运行程序之前,必须:
Ø export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/ccode/dll/
Ø 在/etc/ld.so.conf中添加/root/ccode/dll/路径
相关文章推荐
- Linux静态和动态链接库使用实例
- Linux静态/动态链接库的创建和使用
- Linux静态/动态链接库的创建和使用
- Linux静态/动态链接库的创建和使用
- Linux静态/动态链接库的创建和使用
- [转]Linux静态/动态链接库的创建和使用
- ubuntu下动态链接库的编译和使用实例 分类: arm-linux-Ubuntu 2013-07-22 16:29 272人阅读 评论(0) 收藏
- Linux静态/动态链接库的创建和使用
- Linux静态/动态链接库的创建和使用
- (转)Linux静态/动态链接库的创建和使用 (为完全解决我的问题,但有借鉴作用)
- Linux 静态与动态库创建及使用实例
- Linux静态/动态链接库的创建和使用
- Linux静态/动态链接库的创建和使用
- Linux 动态链接库的编译和使用实例
- linux 动态链接库的创建和使用--静态连接
- linux下生成,使用静态和动态链接库
- Linux静态/动态链接库的创建和使用
- Linux静态/动态链接库的创建和使用
- Linux静态/动态链接库的创建和使用
- Linux平台静态接库与动态链接库的创建和使用