++ 不论是在查资料还是编译运行时总能碰到这个库那个链接的问题,所以我认为有必要再回去看看第七章 ++ 教材学习内容总结 静态链接过程 命令: 可重定向目标文件&可执行目标文件 符合和符号表 任何带有static属性声明的全局变量或者函数都是模块私有的。 符号表是由汇编器构造的,使用编译器输出到汇编 ...
分类:
其他好文 时间:
2017-12-23 19:02:11
阅读次数:
221
在Windows7系统下,采用工具为VS2008,Win32控制台应用程序,编写一个基于TCP的Client/Server网络程序。 1、服务器端代码 2、客户端代码 另外,需要注意的是需要在服务器和客户端都需要链接WinSock静态链接库Ws2_32.lib,有两种添加方法 方法一:在工程配置属性 ...
分类:
编程语言 时间:
2017-12-19 01:33:45
阅读次数:
244
通过前面的学习,我们知道,把可执行程序从一个位置复制到另一个位置的过程叫做重定位。 现在有两种方式,第一种是只重定位data段到内存(sdram),为什么需要重定位?因为有些flash的写操作,不是简单地内存访问,通常我们使用sdram这个介质作为程序运行的载体。但是只重定位data段这种方式存在弊 ...
分类:
其他好文 时间:
2017-12-17 22:24:47
阅读次数:
164
在使用cmake来编写CMakeLists.txt时,如果不特别指明,那么cmake是默认动态链接库的,最终生成的二进制文件只能在与本地相同环境下的机器运行,如果想把生成的二进制拷贝到其他机器上执行,那么会因为缺少相应的动态库而无法执行,解决方法要么是为目标机器部署相应环境,要么是静态链接库方式生成 ...
分类:
其他好文 时间:
2017-12-13 11:48:41
阅读次数:
315
cmd使用java -help可以看到关于agent参数: 其实这三个参数做的事情是一样的,都是java代理。 -agentlib和-agentpath使用的是本地代理也就是c/c++写的本地库(例如动态链接库dll和静态链接库lib), 而-javaagent使用java语言编写的jar。 关于这 ...
分类:
编程语言 时间:
2017-12-06 14:21:19
阅读次数:
308
静态链接库: 用户在生成可执行文件时,调用的以.a结尾的库文件 动态链接库: 用户在生成可执行文件时,调用的以.so/.so.1.xxx结尾的库文件 静态库文件在编译时,会编译到可执行文件里面,所以在运行的时候,可以不依赖于静态库文件,造成生成的可执行文件过大。 静态库在编译时,不会包含到可执行文件 ...
分类:
系统相关 时间:
2017-12-03 21:47:58
阅读次数:
176
设备与模块 设备分类 块设备 块设备可以以块为单位寻址,块大小随设备不同而不同;设备通常支持重定位操作,也就是对数据的随机访问。块设备的例子有外存,光盘等。 字符设备 字符设备不可寻址,仅供数据的流式访问,就是一个个字符,或是一个个字节。字符设备的例子有键盘、鼠标、打印机等。 网络设备 网络设备最常 ...
分类:
系统相关 时间:
2017-12-02 23:24:39
阅读次数:
222
第17章 设备与模块 一、设备类型 1. Linux及Unix系统: 块设备 字符设备 网络设备 2.块设备: 通常缩写为blkdev,它是可寻址的,寻址以块为单位,块大小随设备不同而不同;块设备通常支持重定位操作,也就是对数据的随机访问。 块设备是通过称为“块设备节点”的特殊文件来访问的,井且通常 ...
分类:
系统相关 时间:
2017-12-02 20:19:26
阅读次数:
256
对于2440而言,nand启动,nand的前4k内容由硬件复制到sram。 nor flash,可以像内存一样读,但是不能像内存一样写,执行写操作需要特殊的操作。 程序中包含有需要写的全局或者静态变量,它们在bin文件中,写在nor flash上,直接修改这样的变量是无效的。 到底什么意思呢?还是看 ...
分类:
其他好文 时间:
2017-11-25 00:58:39
阅读次数:
336
链接方式分为两种:静态链接、动态链接。 静态链接 由链接器在链接时将库的内容加入到可执行程序中。 优点: ? 对运行环境的依赖性较小,具有较好的兼容性。 ? 程序在运行的时候不需要库的支持。 缺点: ? 生成的程序比较大,需要更多的系统资源,在装入内存时会消耗更多的时间。 ? 库函数有了更新,必须重 ...
分类:
系统相关 时间:
2017-11-24 19:09:54
阅读次数:
233