GCC编译静态库和动态库
2016-05-28 00:00
211 查看
一、动态库的编译和使用
编译命令:gcc -shared hello.c -o libhello.so
可以看到,当前目录下多了一个文件libhello.so
测试test.c
编译这个测试程序:gcc test.c -lhello -L. -o test
-lhello 指定要连接的库,文件名默认规则是libxxx.so
-L . 是指定库的目录
注意:编译成功但是执行会出错,执行是动态连接这个库会找不到路径,可以复制libhello.so到 /usr/lib等共用lib目录
或者修改环境变量export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
二、静态库的编译和使用
编译命令:gcc -c hello.c 这里会生成hello.o
生成静态库:ar -r libhello.a hello.o 将hello.o插入静态库
编译测试程序:
gcc test.c -lhello -L. -static -o hello.out
gcc test.c libhello.a -L. -o hello.out
[code=plain]//hello.c #include<stdio.h> void hello() { printf("This is hello!\n"); }
编译命令:gcc -shared hello.c -o libhello.so
可以看到,当前目录下多了一个文件libhello.so
测试test.c
[code=plain]//test.c #include<stdio.h> int main() { printf("call hello()\n"); hello(); }
编译这个测试程序:gcc test.c -lhello -L. -o test
-lhello 指定要连接的库,文件名默认规则是libxxx.so
-L . 是指定库的目录
注意:编译成功但是执行会出错,执行是动态连接这个库会找不到路径,可以复制libhello.so到 /usr/lib等共用lib目录
或者修改环境变量export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
二、静态库的编译和使用
编译命令:gcc -c hello.c 这里会生成hello.o
生成静态库:ar -r libhello.a hello.o 将hello.o插入静态库
编译测试程序:
gcc test.c -lhello -L. -static -o hello.out
gcc test.c libhello.a -L. -o hello.out
相关文章推荐
- 发一个简洁实用的串口调试工具
- 编译ARM Linux GCC工具链
- 简化版的SHA1算法C语言版
- 手动安装Keil5(制作绿色版/精简版Keil5)
- windows系统MSDN下载地址
- 2阶节IIR算法C语言源码
- DS28E01典型应用及破解方法
- MFC加载纯资源DLL ,常用于实现多语言
- Linux启动参数
- Makefile范例:单文件夹多个.c和.h编译
- 奇艺QSV文件格式简单分析
- VC/MFC 文件选择和文件夹选择,代码片段
- 手机在于折腾,历时5个月终于救回来了!
- 计算机网络概述
- 手机在于折腾,探索未知世界!
- EPT分区表
- 手机在于折腾,这下玩火自焚了...
- MP4文件格式
- 蓝牙手柄按键码
- 安装纯净版debian,提升逼格必备技能