一、在应用程序需要连接外部库的情况下,linux默认对库的连接是使用动态库,在找不到动态库的情况下再选择静态库。使用方式为:

gcc test.cpp -L. -ltestlib

如果当前目录有两个库libtestlib.so libtestlib.a 则肯定是连接libtestlib.so。如果要指定为连接静态库则使用:

gcc test.cpp -L. -static -ltestlib

使用静态库进行连接。

二、当对动态库与静态库混合连接的时候,使用-static会导致所有的库都使用静态连接的方式。这时需要作用-Wl的方式:

gcc test.cpp -L. -Wl,-Bstatic -ltestlib  -Wl,-Bdynamic -ltestlib

另外还要注意系统的运行库使用动态连接的方式,所以当动态库在静态库前面连接时,必须在命令行最后使用动态连接的命令才能正常连接

,如:

gcc test.cpp -L. -Wl,-Bdynamic -ltestlib -Wl,-Bstatic -ltestlib  -Wl,-Bdynamic


转载自:https://www.cnblogs.com/alaigle/archive/2012/08/06/2625248.html

Ubuntu下动态库与静态库混合连接相关推荐

  1. linux动态库与静态库混合连接

    在应用程序需要连接外部库的情况下,linux默认对库的连接是使用动态库,在找不到动态库的情况下再选择静态库.使用方式为: gcc test.cpp -L. -ltestlib 如果当前目录有两个库li ...

  2. Linux下用gcc生成静态库和动态库及练习使用OpenCV

    我们通常把一些公用函数制作成函数库,供其它程序使用.函数库分为 静态库和动态库两种.静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库.动态库在程序编译时并不会被连接到目标代码中,而 ...

  3. Linux下动态库和静态库制作与调用

    Linux下动态库和静态库制作与调用 1.动态库和静态库简介   静态库是指在应用中,有一些公共代码需要反复使用,就把这些代码编译为"库"文件:在链接步骤中,连接器将从库文件取得所 ...

  4. Linux下CMake简明教程(六)动态库和静态库的编译控制

    代码在git 有时只需要编译出动态库和静态库,然后等着让其它程序去使用.让我们看下这种情况该如何使用cmake.首先按照如下重新组织文件,只留下testFunc.h和TestFunc.c ├── CM ...

  5. Linux下制作和使用静态库和动态库

    写在前面: ldd + 可执行文件 可以查看可执行文件所依赖的库 概述: Linux操作系统支持的函数库分为静态库和动态库,动态库又称共享库.linux系统有几个重要的目录存放相应的函数库,如/lib ...

  6. 关于VS2013下制作和使用静态库和动态库

    关于VS2013下制作和使用静态库和动态库 引言 什么是库:库是写好的现有的,成熟的,可以复用的代码. 所谓静态.动态是指链接.将一个程序编译成可执行程序的步骤: 静态库在链接阶段,会将汇编生成的目标 ...

  7. 关于VS环境下制作和使用静态库和动态库

    转载理由:虽然操作什么的很基础,不过作为初学还是很好的文章,手把手教学 关于VS2013下制作和使用静态库和动态库 引言 什么是库:库是写好的现有的,成熟的,可以复用的代码. 所谓静态.动态是指链接. ...

  8. gcc g++ Linux下动态库_静态库

    关于Unix静态库和动态库的分析 基本概念 库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀. 例如:libhello.so libhello.a 为了在同一系统中使用不同版本的库,可以在 ...

  9. 结合CmakeList来更好地理解windows下的动态库和静态库

    动态库和静态库的输出 window下输出的静态库为.lib文件,用于包含所有的函数,以及函数的实现,以及其他的一些东西,所以文件较大:输出的动态库包含.lib文件和.dll文件,.lib文件主要包含接 ...

最新文章

  1. Redis集群——利用Gearman在Lnmp架构中做MySQL的缓存服务器
  2. 如何让MFC编写的应用程序(用VC6.0开发)能在别的电脑上运行
  3. python用缩进来写模块_python学习笔记
  4. python输出奇数数字序位_python对输出的奇数偶数排序实例代码
  5. keil单片机C语言输入函数,keil编写C程序是不是不能在函数内定义变量啊,求大神...
  6. Kuzzle,一种内部部署的文档后端
  7. html 单行文本(input text)
  8. 51aspx技术文章汇总搜集
  9. 中高级前端面试秘籍!金三银四如何直通大厂?!(长文)
  10. C#设计模式-单例模式
  11. 窗体点击,空白处隐藏(stopPropagation)
  12. HTML5期末大作业:我的家乡网站设计5
  13. [乐意黎原创]]CuteFTP 操作文件时,中文文件名显示乱码的解决
  14. linux shell 统计词频,shell之词频统计
  15. 模型的骨骼动画技术讲解
  16. 计算机土木工程专业,土木工程专业需要什么样的电脑配置?
  17. 【已解决】体视显微镜左右成像大小不一致
  18. 自学计算机键盘基础知识,刘坚强办公学《新手学五笔打字》1-2 功能键区,电脑键盘功能基础知识按键详解...
  19. python自动给数字前面补0的方法
  20. webservice 菜鸟探索之旅

热门文章

  1. 容器编排技术 -- Kubernetes Pod 生命周期
  2. 容器编排技术 -- kubernetes设计理念
  3. Mac系统下SVN命令
  4. jmeter重写java请求_jmeter之编写java请求-扩展Java Sampler
  5. Flutter Plugin开发流程
  6. java 课后习题 温度转换
  7. window系统盘瘦身(开发)
  8. 【Java】数组的使用
  9. C#LeetCode刷题之#56-合并区间(Merge Intervals)
  10. 思考一下http.ListenAndServe + echo+gorm+xorm的可行性?