字符串编码转换
http://www.rainsts.net/article.asp?id=899
安装 C Library Manpages
http://www.rainsts.net/article.asp?id=898
libgc 垃圾回收
http://www.rainsts.net/article.asp?id=900
GLib
[ 2009-12-26 18:27:00 | 作者:
yuhen ]
用 Linux/C 编程,GLib 是个不错的选择。如果什么都从 glibc (GNU C Library) 开始,那一天下来也出不了什么活。
http://www.rainsts.net/article.asp?id=903
http://www.rainsts.net/article.asp?id=907
GNU Binutils
[ 2010-01-03 17:13:20 | 作者:
yuhen ]
1. addr2line
将程序地址(VA)转换为源代码文件名和行号。
2. ar
用来创建、修改、提取静态库文件。
常用参数:
生成静态库。
查看静态库组成。
展开静态库。
3. as
GNU AT&T 格式汇编器,不过我更愿意用 nasm。
4. gcc
GNU 编译器。
常用参数:
编译程序。
生成动态库。
5. ld
GNU 链接器。还有链接多目标文件的 ln。
6. ldd
通过模拟运行,查看可执行文件动态库加载。通常用于查看动态库加载失败信息。
7. nm
查看目标文件符号表中定义的符号。
8. objcopy
用于把一种目标文件中的内容复制到另一种类型的目标文件中。
9. objdump
显示目标文件信息,通常用于反汇编。
10. ranlib
为静态库(.a)创建索引,相当于 ar 的 s 参数。
11. readelf
用于显示 ELF 文件详细信息。
显示 section table 信息。
显示 section 二进制内容。
显示 section 字符串内容。
12. size
列出目标文件段和总体大小。
13. strings
显示目标文件中的所有可打印字符串。
14. strip
删除目标文件中的全部或特定符号。
将程序地址(VA)转换为源代码文件名和行号。
$ addr2line -fe test 8028783
2. ar
用来创建、修改、提取静态库文件。
常用参数:
r: 替换库文件中的老旧目标文件。 c: 删除已有文件,创建新静态库。 s: 创建或更新静态库索引 (相当于运行 ranlib 命令)
生成静态库。
$ gcc -c func.c $ ar rs libfunc.a func.o
查看静态库组成。
$ ar t libfunc.a
展开静态库。
$ ar x libfunc.a
3. as
GNU AT&T 格式汇编器,不过我更愿意用 nasm。
4. gcc
GNU 编译器。
常用参数:
-c: 生成目标文件,但不做链接。 -Wall: 显示所以可能的警告信息。 -g: 生成必要的调试信息。 -I{dir}: 添加头文件搜索路径。(字母 i 的大写) -L{dir}: 添加 -l 库搜索路径。(字母 l 的大写) -l{name}: 链接库文件。比如 -lm 表示链接 libm.so 。 -lpthread: 链接线程库。 -O{n}: 优化代码,n 为 0, 1, 2, 3 几个等级。 -fPIC: 生成位置无关代码,通常是共享库。 -M -MM: 查看依赖文件。
编译程序。
$ gcc -g -Wall -std=c99 -I./include -I/usr/include/gc -o test -lgc main.o func.o
生成动态库。
$ gcc -c func.c $ gcc -fPIC -shared -o libfunc.so func.o
5. ld
GNU 链接器。还有链接多目标文件的 ln。
6. ldd
通过模拟运行,查看可执行文件动态库加载。通常用于查看动态库加载失败信息。
$ ldd test
7. nm
查看目标文件符号表中定义的符号。
$ nm func.o
8. objcopy
用于把一种目标文件中的内容复制到另一种类型的目标文件中。
9. objdump
显示目标文件信息,通常用于反汇编。
$ objdump -dS -M intel test
10. ranlib
为静态库(.a)创建索引,相当于 ar 的 s 参数。
$ ar r libfunc.a func.o $ ranlib libfunc.a
11. readelf
用于显示 ELF 文件详细信息。
显示 section table 信息。
$ readelf -S test
显示 section 二进制内容。
$ readelf -x .text test
显示 section 字符串内容。
$ readelf -p .strtab test
12. size
列出目标文件段和总体大小。
$ size test
13. strings
显示目标文件中的所有可打印字符串。
$ strings test
14. strip
删除目标文件中的全部或特定符号。
$ strip test