lib,dll这两样东西在许多编程书中都很少出现,但实际工程中,这两样东西的作用确实非常重要,我觉得c++程序员都有必要了解这两样东西。 首先总共有 动态链接 和 静态链接 这两种链接方式 静态链接: 静态链接使用静态链接库lib,且只在源代码编译时用到(编译期)。编译生成静态库时会生成一个.lib ...
分类:
其他好文 时间:
2018-05-27 22:15:08
阅读次数:
167
容器里make报错: 原因: 原因: Makefile中有-static选项,静态链接时没有找到libc.a 解决: (1)安装glibc-static.xxx.rpm,如通过rpm -qa glibc-static,得到结果:glibc-static-2.17-222.el7.x86_64,则yu ...
分类:
其他好文 时间:
2018-05-22 22:27:45
阅读次数:
219
明明项目是对的,代码没有问题,并且把项目作为库项目引入到新项目中没问题,可是一旦把项目编译出.a文件,引入到新项目中不知为何会有几率出现一大堆错误,其实是xcode的缓存机制在作怪,去这个目录: /Users/(自己电脑名字)/Library/Developer/Xcode/DerivedData ...
分类:
其他好文 时间:
2018-05-18 23:28:49
阅读次数:
163
一、目的:自己写一个简单的bootloader 二、过程:开发板上电后cpu立马从pc = 0出开始执行第一条指令,这时就需要进行一些必要的初始化 第一阶段: 1.建立异常向量表 2.关闭看门狗 3.屏蔽所有中断 4.初始化始终 5.初始化内存(sdram) 6.代码重定位 7.清除bss段 8.使 ...
分类:
其他好文 时间:
2018-05-18 18:02:14
阅读次数:
162
WinSDK是编程中的传统难点,个人写的WinAPI程序也不少了,其实之所以难就难在每个调用的API都包含着Windows这个操作系统的潜规则或者是windows内部的运行机制……WinSDK是编程中的传统难点,曾经听有一个技术不是很好的朋友乱说什么给你API谁都会用,其实并非那么简单,个人写的Wi ...
[Reference]:(https://blog.csdn.net/u014132659/article/details/52252298) Linux下使用库有三种方式,静态链接库,动态链接库和动态加载库。 静态链接库: 在编译过程中,将所需要的库文件生成a文件并直接链接到最终的可执行文件当中, ...
分类:
编程语言 时间:
2018-05-10 17:32:09
阅读次数:
276
静态链接库和动态链接库 共有两种库: 一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。 一种是LIB包含函数代码本身,在编译时直接将代码加入程序当中,称为静态链接库static l ...
分类:
其他好文 时间:
2018-05-08 16:39:29
阅读次数:
162
PE文件中重要的表有:1.导出表,2.导入表,3.IAT表,4.重定位表,5.资源表导入表的结构体: 以上结构体成员不多,而且有用的成员只有第一个共用体成员,第四个dll名称,第五个FirstThunk(ITA表首地址)。一一详解如下: 1)第一个成员虽为共用体,但常用的类型是共用体中第二个成员DW ...
分类:
其他好文 时间:
2018-05-08 16:27:05
阅读次数:
144
1. 动态链接器自举 (1)动态链接器本身不依赖任何共享对象 (2)通过一段精巧的启动代码完成自身全局和静态变量的重定位而在过程中又不会用到全局和静态变量 而这个有限制条件的启动代码过程被称为自举 2.将依赖的共享对象映射到进程空间 完成自举后,动态连接器将可执行文件和链接器本身的符号表都合并到一个 ...
分类:
其他好文 时间:
2018-04-29 21:12:55
阅读次数:
165
动态链接下,无论时可执行文件还是共享对象,一旦对其他共享对象有依赖,也就是所有导入的符号时,那么代码或数据中就会有对于导入符号的引用。而在编译时期这些导入符号的确切地址时未知的。只有在运行期才能确定真正确切的地址 静态编译下,这些未知的地址会被编译器一一修正。 对于动态链接来说,共享文件有两种编译方 ...
分类:
其他好文 时间:
2018-04-27 23:59:57
阅读次数:
445