[一天一个命令]ELF目标文件与readelf
readelf elf文件格式分析
readelf elf文件格式分析
第六周
第五周
第四周
ldd用于查看程序运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题。
示例:查看test程序运行所依赖的库:
1 | ~/work/test/Test/build $ ldd example |
第一列:程序需要依赖什么库
第二列: 系统提供的与程序需要的库所对应的库
第三列:库加载的开始地址
通过上面的信息,我们可以得到以下几个信息:
理论上编译是直接在使用的设备上连接各种库编译会很方便,但在树莓派上或许会遇到一些问题:
为了解决这些问题,可以考虑直接在一台Linux的PC或者服务器上编译好代码之后拷贝到嵌入式环境中使用。而由于嵌入式环境使用的指令集不一样,所以需要使用交叉编译工具链完成编译。
第三周
本周文章是一个2016年的slide,gRPC Design and Implementation
gRPC源自Google内部RPC项目Stubby。Stubby这个项目支撑了谷歌内部所有的应用和系统,Google云中全平台百亿次每秒的请求量,提供了C++,Java,Python和Go的API,但是因为和内部工具紧密结合所以并不适合开源。这个项目为后面的开源积累了伸缩性、性能和API经验。