最近项目使用的C++的版本到C++11了,但是由于有些静态库(.a)没有源码,因此链接时还在使用非C++11版本的库文件。目前跑了几天,似乎是没出什么问题,但是我还是想说一下这样做有哪些潜在的风险。 首先需要说明的是,升级到C++11之后,部分std的数据结构的内存布局有可能发生改变(待考究)。最开 ...
分类:
编程语言 时间:
2019-07-10 09:13:33
阅读次数:
163
首先需要了解一下iOS中静态库和动态库、framework的概念 静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用。 什么时候我们会用到库呢?一种情况是某些代码需要给别人使用,但是我们不希望别人看到源码,就需要以库的形式进行封装 ...
分类:
其他好文 时间:
2019-07-07 12:50:16
阅读次数:
109
最近工作需要,需要制作一些静态库。由于缺乏经验,特意找了一些资料,加上自己的测试。特意在此记录一些心得和踩过的坑。所谓“好记性不如烂笔头”,希望自己以后忘记的时候能回头来看看,同时也希望对后来者能提供一定的帮助。 这里,我只写对我来说是难点的地方。 首先,framework是静态库。是用oc编写的。 ...
分类:
其他好文 时间:
2019-06-30 09:50:00
阅读次数:
94
静态库是在编译时需要的库。 1. 建立一个静态库 [arm@localhost gcc]#armlinuxar r libhello.a h1.o h2.o 2. 为静态库建立索引 [arm@localhost gcc]#armlinuxar s libhello.a [arm@loca ...
分类:
系统相关 时间:
2019-06-29 11:13:19
阅读次数:
260
1. 查看静态库或.o 文件的组成文件 [arm@localhost gcc]$ armlinuxobjdump a libhello.a 2. 查看静态库或.o 文件的络组成部分的头部分 [arm@localhost gcc]$ armlinuxobjdump h libhello.a ...
分类:
系统相关 时间:
2019-06-29 11:09:05
阅读次数:
117
Linux系统启动过程分析经过对Linux系统有了一定了解和熟悉后,想对其更深层次的东西做进一步探究。这当中就包括系统的启动流程、文件系统的组成结构、基于动态库和静态库的程序在执行时的异同、协议栈的架构和原理、驱动程序的机制等等。对于一台安装了Linux系统的主机来说,当用户按下开机按钮时,一共要经历以下几个过程,如图:其中,每个过程都执行了自己该做的初始化部分的事情,有些过程又可分为好几个子过程
分类:
系统相关 时间:
2019-06-18 00:30:35
阅读次数:
147
.a 就是 archive.so 就是 shared objectArchive 相当于某个人(这个可能是你也可能是别人)在编一个程序的时候中途留下了很多 .o 文件没用光。怎么办?Archive 起来,以后写别的程序用得着。所以你的程序如果用了 archive,连接到的是“静态”库,库好像已经和你 ...
分类:
其他好文 时间:
2019-06-17 00:57:31
阅读次数:
104
最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误: (.text+0x13): undefined reference to `func' 关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种 ...
分类:
系统相关 时间:
2019-06-16 16:12:17
阅读次数:
148
man.c如上: test.c 如上: 将test.c与main.c转换为目标文件test.o,main.o: 将两者链接成可执行文件: 将test.o打包为动态库文件libtest.so: 将test.o打包为静态库文件libtest.a: 编译链接动态库(gcc是默认链接动态库): 编译链接静态 ...
分类:
其他好文 时间:
2019-06-16 15:49:04
阅读次数:
95
http://www.cppblog.com/wolf/articles/74928.html http://www.cppblog.com/wolf/articles/77828.html http://www.jb51.net/article/34990.htm 大部分内容抄的以上文章的。 1 ...
分类:
系统相关 时间:
2019-06-16 13:31:13
阅读次数:
114