按照共享库的命名惯例,每个共享库有三个文件名:real name,soname和linker name。soname是一个符号链接的名字,只包含共享库的主版本号,主版本号一致即可保证库函数的接口一致,因此应用程序的.dynamic段只记录共享库的soname,只要soname一致,这个共享库就可以用...
分类:
其他好文 时间:
2015-10-14 23:38:24
阅读次数:
517
组成共享库的目标文件和一般目标文件有所不同,在编译时要加-fPIC选项(生成与位置无关代码 Position Independent code)。gcc -c -fPIC stack/stack.c stack/push.c stack/pop.c stack/is_empty.c一般目标文件称为R...
分类:
其他好文 时间:
2015-10-14 21:45:39
阅读次数:
155
一. 静态库的生成1. 测试目录: lib2. 源码文件名: mywindow.h, mywindow.cpp, 类MyWindow继承于QPushButton, 并将文字设置为"I'm in class MyWindow";3. 编写项目文件: mywindow.pro注意两点:TEMPLATE ...
分类:
其他好文 时间:
2015-10-13 19:05:07
阅读次数:
192
一、创建共享库1、新其他建项目,选择C++库2、选择共享库,并取项目名称,单击下一步。这里取名位mylib3、按默认配置单击下一步至模块选项,选择所需支持的模块。这里勾选Qtcore和QtGui。4、直接下一步至完成。现在一个共享库的工程就新建好了。5、右击项目添加新文件,选择Qt设计师界面,以便支...
分类:
其他好文 时间:
2015-10-13 18:57:51
阅读次数:
237
第一部分:在使用Intel芯片的Macintosh计算机开发iOS应用程序所需的全部接口、工具以及资源全都包含于iPhone SDK。苹果公司将大部分系统接口发布在框架这种特殊的数据包。一个框架就是一个目录,它包含一个动态共享库以及使用这个库所需的资源(例如头文件、图像以及帮助应用程序等)。如果要使...
分类:
移动开发 时间:
2015-10-08 14:39:05
阅读次数:
781
1.重点知识点梳理: GCC编译的四个步骤:预处理(gcc -E)、编译(gcc -S)、汇编(gcc -c)、链接 静态链接库的生成:ar rcsv libxxx.a xxx.o 共享库的生成 gcc -fPIC -c xxx.c快速记忆Vim:Vim具有6种基本模式和5...
分类:
其他好文 时间:
2015-09-27 18:41:06
阅读次数:
212
下面列出了我在对共享库(动态链接库)编写以及使用时遇到的几个简单问题进行探究和解答:参考文档:http://www.cnblogs.com/likwo/archive/2012/05/09/2492225.html1.静态库、动态链接库、共享库有什么区别? 静态库(windows下为.lib,li....
分类:
系统相关 时间:
2015-09-21 21:16:33
阅读次数:
205
PIC指的是位置无关代码,用于生成位置无关的共享库,所谓位置无关,指的是共享库的代码断是只读的,存放在代码段,多个进程可同时公用这份代码段而不需要拷贝副本。库中的变量(全局变量和静态变量)通过GOT表访问,而库中的函数,通过PLT->GOT->函数位置进行访问。Linux下编译共享库时,必须加上.....
分类:
其他好文 时间:
2015-09-17 15:02:47
阅读次数:
188
问题场景: 动态库 librabbitmq_r.so 内部依赖动态库 libevent_core.so 和 libevent_pthreads.so ; 可执行程序 sa 依赖动态库 librabbitmq_r.so ; 在链接生成 sa 的时候希望只指定 librabbitmq_r.so 而不指定 li...
分类:
系统相关 时间:
2015-09-15 22:02:07
阅读次数:
365
首先了解一般linux文件系统的构成。*/usr/bin、/bin : 存放所有用户可以执行的命令*/usr/sbin 、/sbin :存放只有root可以执行的命令*/home : 用户缺省宿主目录*/proc : 虚拟文件系统。存放当前进程信息*/lib :存放系统程序运行所需的共享库*/tmp...
分类:
系统相关 时间:
2015-09-13 15:54:45
阅读次数:
143