GCC创建使用静态库,动态库
来源:互联网 发布:手机淘宝怎么关注降价 编辑:程序博客网 时间:2024/05/17 07:29
如何创建和使用,简而言之看代码,从例子入手:
/* * unsgn_pow.c * * Created on: 2012-7-16 * Author: liwei.cai *///库函数unsigned long long unsgn_pow(unsigned int x , unsigned int y){unsigned long long res = 1;if (y == 0){res = 1;}else if(y == 1){res = x;}else{res = x * unsgn_pow(x, y-1);}return res;}
/* * pow_test.c * * Created on: 2012-7-16 * Author: liwei.cai */#include <stdio.h>#include <stdlib.h>int main (int argc, char *argv[]){unsigned int x, y;unsigned long long res;if ((argc < 3) || (sscanf(argv[1], "%u", &x) != 1) ||(sscanf(argv[2],"%u", &y) != 1)){printf("Usage: pow base exponent\n");exit(1);}res = unsgn_pow(x, y);printf("%u ^ %u = %u\n",x, y, res);exit(0);}
首先,将库函数编译成目标文件;使用归档工具ar将一些目标文件集成在一起。
# gcc -c unsgn_pow.c
# ar rcsv libpow.a unsgn_pow.o
然后,编译主程序,连接刚生成的静态库libpow.a
# gcc -o pow_test pow_test.c -L . -lpow
# ./pow_test 2 10
说明:选项"-L dir" 功能与“-I dir ”类似, 能够在库文件的搜索路径列表中添加dir目录, 而“-lname”选项指示编译时连接到的库函数文件 libname.a或者libname.so
下面是创建和使用动态库,看代码
# gcc -fPIC -Wall -c unsgn_pow.c
# gcc -shared -o libpow.so unsgn_pow.o
# gcc -o pow_test pow_test.c -L . -lpow
在程序执行之前,需要注册动态库的路径名。有几种方法:修改/etc/ld.so.conf文件,或者修改LD_LIBRARY_PATH环境变量,或者将库文件直接复制到/lib或者/usr/lib目录下。
说明:动态库只有当使用它的程序执行时才被链接使用,而不是将需要的部分直接编译到可执行文件中,并且一个动态库可以被多个程序使用,故称共享库。而静态库会整合到程序中,因此在程序执行时不用加载静态库,从而可知,链接到静态库的会使程序臃肿,并且难以升级,但是可能会比较容易部署。而链接到动态库会使程序轻便,并且容易升级,但是会难以部署。
- GCC创建使用静态库,动态库
- gcc创建和使用静态库、动态库
- gcc创建和使用静态库、动态库
- gcc创建和使用静态库、动态库
- gcc创建和使用静态库、动态库
- gcc创建和使用静态库、动态库 转载
- gcc创建和使用动态库、静态库
- gcc创建和使用静态库、动态库
- gcc创建和使用静态库、动态库
- gcc的静态库和动态库创建和使用
- gcc创建,使用静态库
- gcc 创建静态库和动态库
- gcc创建,使用动态库
- gcc使用静态库和动态库
- gcc编译使用静态库/动态库
- gcc使用静态库和动态库
- gcc使用---动态库链接静态库
- gcc 学习笔记-创建静态库-创建动态库
- JasperReport 学习2
- CAS Policy on 64-bit Machines
- 网页制作(六)---Windows7 安装IIS 一步步图解
- android 设置字体
- 关于Platform SDK和Windows SDK
- GCC创建使用静态库,动态库
- C++笔记15之函数对象
- 树形DP <dfs+floyd> 【hlg】 1329 游乐园
- 如何连接别人电脑上的ORACLE数据库
- ArcGIS Viewer for Flex(浏览器的样式) .(转帖)
- 基于Z301P摄像头 H.264OK6410的远程视频web监控 项目笔记4(驱动预习)
- android 将view存在map里防止数据混乱
- Sublime Text 2 – 性感无比的代码编辑器!程序员必备神器!跨平台支持Win/Mac/Linux
- 类似于花瓣、发现啦的 Chrome 的插件截图功能是如何实现的?具体的实现原理是什么?