Linux——静态库和动态库的生成
1.vi test.h test.c main.c
2.gcc -c test.c
3.ar rcs libtest.a test.o 静态rcs可换成-r/ gcc -shared -fPIC -o libtest.so test.o 动态
4.gcc -o main main.c -L. -ltest
查看静态库中的.o文件:执行命令 ar -t libhycu.a
gcc -c -c表示只编译不链接
gcc -o test test.c libcrexr64.a
gcc -o test test.c -L. -lcrexr64 -static 将首先查找静态链接库
【1】生成静态库:
$ gcc -c func.c -o func.o
$ ar rcs libfunc.a func.o
$ gcc main.c -o main -static -L. -lfunc
$ ./main
【2】生成动态库:
$ gcc -fPIC -c func.c -o func.o
$ gcc -shared -o libfunc.so.1.0.0 func.o
$ ln -s libfunc.so.1.0.0 libfunc.so
$ gcc main.c -o main -L. -lfunc
$ export LD_LIBRARY_PATH=$(pwd)
$ ./main
如果将so文件copy到系统lib目录(如/usr/lib),则最后2步就不用了。
最后还有3个小知识:
【1】nm命令:列出目标文件或2进制文件的所有符号。
【2】ldd命令:列出为了使程序正常运行所需要的所有共享库。
【3】/etc/ld.so.conf文件:除了标准目录(/lib和/usr/lib)之外,链接器和加载器搜索共享库时要检查的其他目录,和这个文件相关的一个命令是:ldconfig 。
reference:
https://blog.csdn.net/idoit0204/article/details/2729171
转载于:https://www.cnblogs.com/bingoc/p/10773531.html
Linux——静态库和动态库的生成相关推荐
- linux 中如何将文件粘贴到usr下的lib内,学会在Linux下GCC生成和使用静态库和动态库...
一.基本概念1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同(主 ...
- Linux下Gcc生成和使用静态库和动态库详解
参考文章:http://blog.chinaunix.net/uid-23592843-id-223539.html 一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库 ...
- linux下生成静态库和动态库
linux下生成静态库和动态库 一.动态库.静态库简介 库是写好的现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常.本质上 ...
- linux编译ios动态库,[Linux] linux下生成静态库和动态库
g++使用 用g++编译hello world 1. 编写hello world代码 2. 使用g++命令编译生成可执行文件hello.out 3. g++命令规则 预编译 g++ -E hello. ...
- Linux下GCC生成和使用静态库和动态库详解(二)
2.1准备好测试代码hello.h.hello.c和main.c: hello.h(见程序1)为该函数库的头文件. hello.c(见程序2)是函数库的源程序,其中包含公用函数hello,该函数将在屏 ...
- 【Linux】静态库与动态库的生成及调用
一,库:一种可执行代码的二进制形式,可以被载入内存执行.其中库分为静态库.动态库 二,静态库和动态库的区别 1)Linux 下静态库:名字一般为 lib***.a利用静态函数库编译成 ...
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库。
在Linux下如何使用GCC编译程序.简单生成 静态库及动态库. 本文适用于Linux下开发初学者.本文初步讲解在Linux下如何使用GCC编译程序.简单生成静态库及动态库. 一.关于安装.一般系 ...
- Linux下Gcc生成和使用静态库和动态库详解(转)
一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同( ...
- Linux 静态库和动态库的生成及使用
1.分文件编程 分模块的编程思想:假设一个项目需要用到网络.超声波.电机,程序不是都杂糅在同一个文件,而是将网络.超声波.电机需要调用的函数写在不同文件里,在主文件中直接调用即可. 好处: a.功能责 ...
- Linux系统上库文件的生成与使用(静态库和动态库)
目录 1.什么是库文件? 2.静态库的生成与使用 2.1.生成 .o 文件 2.2.创建静态库 2.3.使用静态库 3.动态(共享)库的生成与使用 3.1.生成 .o 文件 3.2.生成动态库文件 3 ...
最新文章
- php mysql study_phpStudy 升级 MySQL5.7
- GUN sed高级用法,sed脚本编写
- 将Vue+Nodejs项目部署到阿里云服务器
- http 和 https_HTTPS与HTTP区别
- java 判断闰年和月份_java----根据输入的年月判断闰年和打印日历
- 宅在家里写数据库中事务(ACID)
- easyui datagrid 让某行复选框置灰不能选
- Python + 大数据-Python 学习(一)
- 键盘扫描码集(共三版)
- 锐浪报表,用脚本处理字段
- 西安、武汉、成都、南京、杭州、苏州和广州,这些城市都有哪些互联网公司?一文全知道!...
- 阿里云上部署的SQL Server服务器和SVN服务器不能远程访问
- 深度解读AMBA、AHB、APB、AXI总线
- Spring Data JPA 查询方法的命名语法与参数
- Java 使用iframe的简单功能页面
- Leetcode——121. Best Time to Buy and Sell Stock
- Metaspace整体介绍
- wolframalpha最新版_wolfram alpha 安卓版下载
- 浩顺AC671指纹考勤机二次开发(demo)
- 赛迪智库丨谁能成功抢位操作系统,谁就能掌握未来汽车产业发展的主动权