Linux静态库和动态库的设计

静态库和动态库的设计


宗旨:技术的学习是有限的,分享的精神是无限的。


Linux应用程序设计中需要的外部函数主要由函数库和系统调用来提供

Linux应用程序使用的主要函数库均存放于/lib, /usr/lib目录下,其中采用*.so.*方式命名的是动态函数库,而以*.a方式命令的是静态函数库(空间占据大)

Linux下进行链接时 默认是链接动态库

1制作静态库

       (1).gcc -c mylib.c -o mylib.o

       (2).ar cqs libmylib.a mylib.o

       (3).将制作好的libmylib.a复制到/usr/lib

       (4).GCC在链接时,默认只会链接C函数库,而对于其他的函数库,则需要使用-l选项来显示地指明需要链接。例:gcc test.c –lmylib -o test

 

2、制作动态库

       (1).gcc -c mylib.c -o mylib.o

       (2).ar -shared -fPIC mylib.o -olibmylib.so

       (3).将制作好的libmylib.so复制到/usr/lib

       -fpic 使输出的对象模块是按照可重定位地址方式生成的。

       -shared 指明产生动态链接库

       (4).GCC在链接时,默认只会链接C函数库,而对于其他的函数库,则需要使用-l选项来显示地指明需要链接。例:gcc test.c –lmylib -o test

 

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

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

相关文章

操作excel

static void create(String path) throws Exception {//读取文件FileInputStream in new FileInputStream(path);XSSFWorkbook wb new XSSFWorkbook(in);// 获得该工作区的第一个sheetXSSFSheet sheet wb.getSheetAt(0);int rowNum sheet.getLastRowNum();//行int columnNu…

无法安装软件之解决其一 (windows installer服务篇)

早上接到兄弟求助,无法安装软件,于是把最直接方法告诉他,还原啊。但ghost 进程到一半就当了,真是对不起他。。挂了电话后查了一下,现将方法总结如下:两种环境1 windows 2000系统 中:第一步&…

决策树——CART和模型树

CART树 理解: 如果CART树处理离散型数据,叫做分类决策树,那么,引入基尼指数作为寻找最好的数据划分的依据,基尼指数越小,说明数据的“纯度越高”,随机森林的代码里边就运用到了基尼指数。如…

宏比较值,坑的一B

昨晚上,我准备睡觉,连总给我发了一段代码#include "stdio.h"#define MAX_MACRO(a, b) ((a) > (b) ? (a) : (b)) int MAX_FUNC(int a, int b) {return ((a) > (b) ? (a) : (b)); }int main() {unsigned int a 1;int b -1;printf(&quo…

Linux下Samba服务器搭建

linux文件共享之samba服务器 ——ubuntu 宗旨:技术的学习是有限的,分享的精神是无限的。 关闭LINUX防火墙命令: #ufwdisable 然后就在windows下ping一下linux的IP,如果能ping通,就可以继续下面的内容,如果p…

日志分析linux命令

1、查看文件内容:cat 。-n显示行号。 2. more:全屏幕分页显示文件的内容。下一页:space键;上一页:B;停止:Q;显示下一行:Enter; 3. less:在文件最…

C#比较两时间大小

1。比较时间大小的实验 string st1"12:13"; string st2"14:14"; DateTime dt1Convert.ToDateTime(st1); DateTime dt2Convert.ToDateTime(st2); DateTime dt3DateTime.Now; if(DateTime.Compare(dt1,dt2)>0) msg.Textst1">…

搞懂C++为什么难学,看这篇就够了!

学C能干什么? 往细了说,后端、客户端、游戏引擎开发以及人工智能领域都需要它。往大了说,构成一个工程师核心能力的东西,都在C里。跟面向对象型的语言相比,C是一门非常考验技术想象力的编程语言,因此学习起…

2017 实习面试问题总结(阿里、头条、美团、cvte、乐视、华为)

2017 实习面试问题总结(阿里、头条、美团、cvte、乐视、华为) Java后台面试 常见问题转载于:https://www.cnblogs.com/straybirds/p/8319566.html

SAP BC417 课程中文自学笔记

BC417: BAPI Development for Accessing SAP Components开发自定义 BAPI 的方法http://files.cnblogs.com/qiangsheng/SAP_BC417.rarhttp://files.cnblogs.com/qiangsheng/SAP_BC417_appendix.rar

看图学源码之FutureTask

RunnableFuture 源码学习: 成员变量 任务的运行状态的转化 package java.util.concurrent; import java.util.concurrent.locks.LockSupport;/**可取消的异步计算。该类提供了Future的基本实现,包括启动和取消计算的方法,查询计算是否完成以…

单片机的引脚,你都清楚吗?

第1课:单片机简叙1.单片机可以做什么?目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。小到电话,玩具,手机,各类刷卡机,电脑键盘,彩电,冰箱&…

Graphviz的安装及纠错

在Anaconda Prompt里边输入conda install graphviz 安装成功之后输入pip install graphviz 它会提示成功安装。 启动 Jupyter Notebook ,在文件里边输入 import graphviz 测试,如果没有报错证明,模块安装成功,但是在运行程序…

基于ubuntu13.04搜狗输入法安装方法

基于ubuntu13.04搜狗输入法安装方法 宗旨:技术的学习是有限的,分享的精神是无限的。 sudo gedit etcaptsources.list 在打开的文件中加入以下两行: deb http ppa.launchpad.netfcitx-teamnightlyubuntu quantal main deb-src http ppa.lau…

给磁盘加个背景

给你的磁盘加上漂亮的背景先看下效果:具体方法:很简单的方法,新建一个文本文档输入以下内容:[ExtShellFolderViews]{BE098140-A513-11D0-A3A4-00C04FD706EC}{BE098140-A513-11D0-A3A4-00C04FD706EC}[{BE098140-A513-11D0-A3A4-00C…

/etc/fstab 参数详解及如何设置开机自动挂载

某些时候当Linux系统下划分了新的分区后,需要将这些分区设置为开机自动挂载,否则,Linux是无法使用新建的分区的。 /etc/fstab 文件负责配置Linux开机时自动挂载的分区。 Windows的文件结构是多个并列的树状结构,最顶部的是不同的磁…

sklearn——决策树

总结sklearn决策树的使用,方便以后查阅。1.分类决策树 (基于CART树) 原型:参数:2、回归分类树 原型:参数:3、export_graphviz 当训练完毕一颗决策树时,可以通过sklearn.tree.expor…

Linux下SVN服务器的搭建

Linux下SVN服务器的搭建 宗旨:技术的学习是有限的,分享的精神是无限的。 1、下载工具(下载地址:) subversion-1.6.1.tar.gz subversion-deps-1.6.1.tar.gz 2、解压两个包: a) tar -xzvf subvers…

记一次解决问题的掉坑过程

这两天在调试一个音频ADC 芯片,也是之前的项目,但是一直调不出来,我发现我总是在这样的问题上纠结很久,以前踩过的坑后面照样会踩,只不过踩完会迅速把脚拉出来继续前进,我经常听到有人说「做嵌入式真的太容…

体验了一下用word 2007发表博客

一个字:爽!再也不同上传图片,在IE里排版了。