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

gcc test.cpp -L. -ltestlib

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

gcc test.cpp -L. -static -ltestlib

使用静态库进行连接。

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

-Wl选项告诉编译器将后面的参数传递给链接器。

-soname则指定了动态库的soname(简单共享名,Short for shared object name)

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

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

,如:

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

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

  1. Ubuntu下动态库与静态库混合连接

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

  2. linux系统c++编译连接过程,动态库与静态库

    https://www.cnblogs.com/ucas/p/5778664.html(linux系统c++编译连接过程) http://www.cnblogs.com/skynet/p/337285 ...

  3. linux代码动态分析软件,举例分析Linux动态库和静态库

    函数库分为静态库和动态库两种.创建Linux静态库和Linux动态库和使用它们在这里将以举例的形式详述一下.静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库.动态库在程序编译时并不 ...

  4. Linux动态库和静态库比较

     Linux动态库和静态库比较文件预览 文件目录树如下,如你所见,非常简单.    1. libtest/    2. |-- lt.c    3. |-- lt.h    4. `-- test.c ...

  5. Linux中的动态库和静态库(.a/.la/.so/.o)

    为什么80%的码农都做不了架构师?>>>    Linux中的动态库和静态库(.a/.la/.so/.o) Linux中的动态库和静态库(.a/.la/.so/.o) C/C++程序 ...

  6. 举例分析Linux动态库和静态库

    转自:http://www.xxlinux.com/newxxlinux/development/gui/2012-01-05/499.html 函数库分为静态库和动态库两种.创建Linux静态库和L ...

  7. linux系统下的“静态库和动态库”专题之二:库的创建和使用

    接上文[linux系统下的"静态库和动态库"专题之一:库的概念和规则]所述,我们通常把一些公用函数制作成函数库,供其它程序使用.函数库分为静态库和动态库两种. – 静态库在程序编译 ...

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

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

  9. Linux库概念及相关编程(动态库、静态库、环境变量)

    分文件编程: 好处:分模块编程思想,功能和责任划分清楚便与调试,main函数简洁,代码易于阅读. 编程时头文件有的是使用<>这个符号括起来的,有的是" "使用的是双引号 ...

最新文章

  1. 隐形马尔可夫模型——前向算法就是条件概率
  2. YUV2RGB源码详解(参考Opencv4.1)
  3. 两种删除internal table entry的性能比较
  4. web前后端 http转https
  5. Oracle11默认用户名和密码
  6. bzoj5017 [Snoi2017]炸弹
  7. 下载pyboard的flash中的驱动程序_HASP加密狗驱动程序没有安装成功如何解决
  8. 软件质量的定义以及相关理论
  9. 从Word中读取内容将word转换成txt
  10. linux报cpu软锁,内核软死锁
  11. STM32+Air202+Air530+HXDZ-30102-ACC心率血氧GPS采集上传到阿里云
  12. OpenGL学习脚印:伽马校正(Gamma Correction)
  13. 屏幕关闭原因以及p-sensor
  14. Dell清除BIOS密码及硬盘锁
  15. css文件处理,安装 less-loader
  16. STM32入门-区别ORD,BSRR,BRR寄存器
  17. 服务器内存性能查看,如何查看服务器内存使用大小
  18. 机器学习 --- k-means
  19. 用python爬取豆瓣影评及影片信息(评论时间、用户ID、评论内容)
  20. 全球及中国抗高血压药物市场经营状况及投资竞争力分析报告2021-2027年

热门文章

  1. 当你在浏览器输入一个网址,如http://www.taobao.com,按回车之后发生了什么?
  2. oracle对象权限 函数,oracle的系统和对象权限
  3. win2012 ad用户和计算机,Server2012R2搭建AD域服务器并添加登录用户
  4. 【算法设计与分析】05 有关函数的渐进的界的定理
  5. git add -A 、git add -u 、 git add . 三种区别
  6. [UE4]更新UI的三种方式
  7. 设计模式 策略模式2 c++11
  8. Windows系统环境下Solr之Java实战(三)使用solrJ管理索引库
  9. python的collection系列-默认字典(defaultdict)
  10. 【LINUX/UNIX网络编程】之使用消息队列,信号量和命名管道实现的多进程服务器(多人群聊系统)...