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——静态库和动态库的生成相关推荐

  1. linux 中如何将文件粘贴到usr下的lib内,学会在Linux下GCC生成和使用静态库和动态库...

    一.基本概念1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同(主 ...

  2. Linux下Gcc生成和使用静态库和动态库详解

    参考文章:http://blog.chinaunix.net/uid-23592843-id-223539.html 一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库 ...

  3. linux下生成静态库和动态库

    linux下生成静态库和动态库 一.动态库.静态库简介 库是写好的现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常.本质上 ...

  4. linux编译ios动态库,[Linux] linux下生成静态库和动态库

    g++使用 用g++编译hello world 1. 编写hello world代码 2. 使用g++命令编译生成可执行文件hello.out 3. g++命令规则 预编译 g++ -E hello. ...

  5. Linux下GCC生成和使用静态库和动态库详解(二)

    2.1准备好测试代码hello.h.hello.c和main.c: hello.h(见程序1)为该函数库的头文件. hello.c(见程序2)是函数库的源程序,其中包含公用函数hello,该函数将在屏 ...

  6. 【Linux】静态库与动态库的生成及调用

    一,库:一种可执行代码的二进制形式,可以被载入内存执行.其中库分为静态库.动态库 二,静态库和动态库的区别          1)Linux 下静态库:名字一般为 lib***.a利用静态函数库编译成 ...

  7. 在Linux下如何使用GCC编译程序、简单生成静态库及动态库。

    在Linux下如何使用GCC编译程序.简单生成 静态库及动态库.   本文适用于Linux下开发初学者.本文初步讲解在Linux下如何使用GCC编译程序.简单生成静态库及动态库. 一.关于安装.一般系 ...

  8. Linux下Gcc生成和使用静态库和动态库详解(转)

    一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同( ...

  9. Linux 静态库和动态库的生成及使用

    1.分文件编程 分模块的编程思想:假设一个项目需要用到网络.超声波.电机,程序不是都杂糅在同一个文件,而是将网络.超声波.电机需要调用的函数写在不同文件里,在主文件中直接调用即可. 好处: a.功能责 ...

  10. Linux系统上库文件的生成与使用(静态库和动态库)

    目录 1.什么是库文件? 2.静态库的生成与使用 2.1.生成 .o 文件 2.2.创建静态库 2.3.使用静态库 3.动态(共享)库的生成与使用 3.1.生成 .o 文件 3.2.生成动态库文件 3 ...

最新文章

  1. php mysql study_phpStudy 升级 MySQL5.7
  2. GUN sed高级用法,sed脚本编写
  3. 将Vue+Nodejs项目部署到阿里云服务器
  4. http 和 https_HTTPS与HTTP区别
  5. java 判断闰年和月份_java----根据输入的年月判断闰年和打印日历
  6. 宅在家里写数据库中事务(ACID)
  7. easyui datagrid 让某行复选框置灰不能选
  8. Python + 大数据-Python 学习(一)
  9. 键盘扫描码集(共三版)
  10. 锐浪报表,用脚本处理字段
  11. 西安、武汉、成都、南京、杭州、苏州和广州,这些城市都有哪些互联网公司?一文全知道!...
  12. 阿里云上部署的SQL Server服务器和SVN服务器不能远程访问
  13. 深度解读AMBA、AHB、APB、AXI总线
  14. Spring Data JPA 查询方法的命名语法与参数
  15. Java 使用iframe的简单功能页面
  16. Leetcode——121. Best Time to Buy and Sell Stock
  17. Metaspace整体介绍
  18. wolframalpha最新版_wolfram alpha 安卓版下载
  19. 浩顺AC671指纹考勤机二次开发(demo)
  20. 赛迪智库丨谁能成功抢位操作系统,谁就能掌握未来汽车产业发展的主动权

热门文章

  1. 计算机科学技术学院迎新晚会主题,我院举办“魅力计科人 追梦新IT”2019级迎新晚会...
  2. java antlr的开发
  3. 视频宽高比和分辨率的关系(转)
  4. upload-labs(1~3关)
  5. 25分钟!一键部署Oracle 11GR2 HA 单机集群
  6. 虹科NVH诊断案例 | 雷克萨斯GS 300传动系统振动问题
  7. Matlab函数调用(简明教程)
  8. python电子数据分析书_一份数据分析电子书
  9. ROS 无缝漫游教程(方法一)
  10. python中的异常处理习题