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

在应用程序需要连接外部库的情况下,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 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434129.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java运算函数_Java中的数学计算函数

Math类:java.lang.Math类中包含基本的数字操作,如指数、对数、平方根和三角函数。java.math是一个包,提供用于执行任意精度整数(BigInteger)算法和任意精度小数(BigDecimal)算法的类。java.lang.Math类中包含E和PI两个静态常量,以…

从无头单链表中删除节点

#include<iostream> using namespace std;struct Node{int data;Node* next; };void deleteNode(Node* p) {p->datap->next->data; //将p后的节点的数值赋给p的data域p->nextp->next->next; //将p后的节点删除&#xff0c;即完成了删除节点p的效果…

android卡片层叠效果_ReactNative之Android绝对布局position:#x27;absolute#x27;问题

工作中会遇到各种各样的问题&#xff0c;ReactNative开发也是填坑不止。比如最近在开发需求中&#xff0c;就遇到一个问题。在一个卡片类型的右上角添加一个删除按钮。使用了绝对布局position:absolute属性&#xff0c;在Android上却无法正常显示&#xff0c;很是烦恼。有一个相…

java监听机制_详解java的事件监听机制和观察者设计模式

首先说说监听器&#xff1a;监听器就是一个实现特定接口的普通java程序&#xff0c;这个程序专门用于监听另一个java对象的方法调用或属性改变&#xff0c;当被监听对象发生上述事件后&#xff0c;监听器某个方法将立即被执 行。java的事件监听机制可概括为3点&#xff1a;1,ja…

敏捷开发的6个实战经验

在大型企业中经常是各种软件开发模式混用&#xff0c;一些采用敏捷开发&#xff0c;一些则是采用传统的瀑布式或RUP&#xff08;统一软件开发过程&#xff09;。敏捷开发&#xff0c;相对传统软件开发模式&#xff0c;它主要是针对快速变化的需求&#xff0c;不断优化管理流程&…

C++ Editbox换行问题

在EditBox中"/r/n" 换行有时是不行的。 使用&#xff1a;strFilePath.Format("File Name: %s%c%c", strFileName,0x0D,0x0A); //strFilePath.Format("File Name: %s/r/n", strFileName);转载于:https://www.cnblogs.com/mygod/archive/2012/11/1…

java 正则匹配括号是否成对_十分钟学会正则表达式

正则表达式用处挺广的&#xff0c;主要用于处理字符串。正则引擎想要在计算机语言中使用正则表达式&#xff0c;那么这门计算机语言必须要利用正则引擎去实现相应的正则库。主要的正则引擎分为以下两类&#xff1a;DFA 确定性的状态机。不使用”回溯”&#xff0c;效率高&#…

shell 脚本比较字符串相等_比较带空格的字符串相等的Shell脚本 如何比较两个.....

****************************比较带空格的字符串相等的Shell脚本***************************如果要比较的字符串中间有空格&#xff0c;可以用下面的程序(摘自《Unix Shells by Example, 3rd Edition》)name"Joe Blow"if [[ $name "Joe Blow" ]]thenpri…

Linux 下编译并安装配置 Qt

本文介绍的是Linux 下编译并安装配置 Qt&#xff0c;最近准备做 Nokia 的 Symbian,Maemo 下触摸屏开发。考虑到程序的跨平台可移植性&#xff0c;最终选择使用 Qt 开发。相对来说&#xff0c;国内关于 Qt 相关文档并不算很多。作者将 Linux 下编译并安装配置 Qt 全过程总结了…

itext jsp页面打印

最近项目中需要一个打印功能&#xff0c;需求很简单&#xff0c;只要打印出单据就可以了&#xff0c;画出一个表格&#xff0c;一些信息需要从数据库中提取 找到了免费的itext&#xff0c;可以实现我的简单的功能了 代码&#xff1a;&#xff08;打印方法&#xff09; public S…

android token机制_你真的了解16.6ms刷新机制吗?

阅读本文前&#xff0c;请您先点击上面的蓝色字体“Android扫地僧”&#xff0c;“关注”后再点击置顶公众号&#xff0c;优质干货&#xff0c;重磅资源第一时间送达。散人丶https://juejin.im/post/5ce686a46fb9a07ec754f470前言之前在整理知识的时候&#xff0c;看到android屏…

dfa2.java 原理_DFA编程练习2

题目: 请设计DFA, 使其接受全部含有奇数个1的串, 假定 ∑ {0, 1}.解:DFA可能出现两个个状态:qeven: 读入了偶数个1的串.qodd: 读入了奇数个1的串, 该状态也是终结状态(accept state).它们的状态转移图如下:编写程序, 运行效果如下:测试用例说明:0000不被上图的DFA接受1111不被…

Asp.net的HTTP请求处理过程

说明&#xff1a; &#xff08;1&#xff09;、客户端浏览器向服务器发出一个Http请求&#xff0c;此请求会被inetinfo.exe进程截获&#xff0c;然后转交给 aspnet_isapi.dll进程&#xff0c;接着它又通过Http Pipeline的管道&#xff0c;传送给aspnet_wp.exe这个进程&#xff…

ubuntu13.10 编译时 关于链接xlib 库阶段出错的问题解决

/usr/bin/ld: fmouse_main.o: undefined reference to symbol XFlush /usr/lib/i386-linux-gnu/libX11.so.6: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make: *** [freepen_drv] 错误 1 以上为错误提示&#xff0c…

fread读取整个文件_qt如何实现大文件的加载和显示

最近研究了下如何用qt的原生控件来加载和显示大文件&#xff08;>1G&#xff09;&#xff0c;分享下一些摸索经验。下文源码&#xff1a;compilelife/loginsight​github.com文件的内存映射在开始qt部分之前&#xff0c;我们先了解一个概念——文件的内存映射。我们知道一般…

[转]listview中设置背景图片后 拉动变黑

经本人亲测有效...在Android中&#xff0c;ListView是最常用的一个控件&#xff0c;在做UI设计的时候&#xff0c;很多人希望能够改变一下它的背景&#xff0c;使他能够符合整体的UI设计&#xff0c;改变背景背很简单只需要准备一张图片然后指定属性 android:background"d…

编译pjsip2.1.0 vidgui程序时,xlib保错问题

/usr/lib/i386-linux-gnu/libX11.so.6: error adding symbols: DSO missing from command line 以上为错误提示&#xff0c;为链接阶段未指定正确的库文件导致&#xff1b; 解决办法&#xff1a; 修改pro文件&#xff0c;增加下面这一行 LIB -lX11 -L/usr/lib/i386-linux-g…

linux内核编译及添加系统调用(hdu)_浅谈关于Linux内核write系统调用操作的原子性

Linux系统的write调用到底是不是原子的。网上能搜出一大堆文章&#xff0c;基本上要么是翻译一些文献&#xff0c;要么就是胡扯&#xff0c;本文中我来结合实例来试着做一个稍微好一点的回答。先摆出结论吧。结论包含两点&#xff0c;即write调用不能保证什么以及write调用能保…

java 判断对象为控制_Java流程控制

Java流程控制1、Scanner对象①java.util.Scanner是Java5的新特性&#xff0c;可以通过Scanner类来获取用户的输入。②基本语法&#xff1a;1 Scanner snew Scanner(System.in);③通过next()和nextLine()方法接受用户输入&#xff0c;通过hasNext()和hasNextLine()方法来判断用户…

lsb_release -a 查询系统版本

LSB是Linux Standard Base的缩写&#xff0c;lsb_release命令用来显示LSB和特定版本的相关信息。如果使用该命令时不带参数&#xff0c;则默认加上-v参数。 -v, --version 显示版本信息 -i, --id 显示发行版的ID -d, --description 显示该发行版的描述信息 -r, --release 显示当…