简介:
主机:虚拟机、1核4G
系统:CentOS6.1 gcc4.8.1
1、下载boost源码版本,解压,运行bootstrap.sh --prefix=/usr/local/boost
2、第1步运行报错,提示 /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.17' not found (required by ./b2),通过linux命令nm或者strings命令查看libstdc++.so.6指向的库libstdc++.so.6.13 发现的确不存在GLIBCXX_3.4.17或者更高版本,也就是不支持3.4.17版本。
3、nm libstdc++.so.6.13没发现有符号表,原来libstdc++.so.6.13被strip,需要执行nm -Do libstdc++.so.6.13才能显示符号表信息。
4、处理目标文件的工具有:
a、AR创建静态库,插入、删除、列出和提取成员;
b、STRINGS列出一个目标文件中删除符号信息;
c、NM:列出一个目标文件中的符号表中定义的符号;
d、SIZE:列表目标文件中的名字和大小;
e、READELF:显示一个目标文件的完整结构,包括ELF头中编码的所有信息,包含SIZE和NM的功能;
f、OBJDUMP:所有二进制工具之母。能够显示一个目标中所有的信息。它最大的作用是反汇编.text节中的二进制命令;
g、LDD:列出一个可执行文件在运行时所需要的共享库;