字符串编码转换

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)转换为源代码文件名和行号。
$ 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

原文地址:https://www.cnblogs.com/lexus/p/2245552.html