Linux development tools
编辑器:
vi:老牌编辑器,在各个unix和unix-like平台都可以找到
emacs:GNU项目开发的编辑器,功能强大扩展性强,绝对不是一个编辑器那么简单
代码打补丁工具:
diff & patch:一对好搭挡,diff用来生成代码补丁,而patch则用来给代码打补丁
项目构建工具:
make(Makefile):常用的项目构建工具,用一个Makefile就可以从整个项目的代码中构建各个目标
autotool(包括Autoconf, Automake 和 Libtool):方便在你的项目中生成标准的Makefile,为许多自由和开源软件项目所使用
版本控制工具:
cvs:老牌的版本控制工具,适用于集中式版本控制,为许多项目服务过,现在略显疲态
subversion:一个为了代替cvs而开发的工具,解决了cvs的一些诟病
GNU Arch:GNU项目开发的版本控制工具,属于分布式版本控制工具
git:Linus Torvalds为内核版本控制所开发的工具,当然也适用于普通应用程序,也属于分布式版本控制工具
C库:
glibc:GNU项目开发的C库,很庞大和全面,是许多自由和开源软件的基石,熟悉它对你进入linux开发领域很有好处
uclibc:为嵌入式系统所开发的C库,比glibc小得多,但是对glibc保持很高的兼容,基于glibc的软件很容易移植到uclibc上
newlib:另一个为嵌入式系统所开发的C库
diet libc:同样是为嵌入式系统所开发的C库
二进制和目标文件处理工具:
binutils:GNU项目所开发的二进制和目标文件处理工具包,包括多种开发过程所需的工具:连接器、汇编器、一系列的二进制和目标文件处理工具还有一个性能分析器。你一般很少直接用到它们,但常常间接用到它们。
编译器:
gcc:GNU项目所开发的全能编译器,它支持的语言包括C、C++、Objective-C、Fortran、Java和Ada,它支持的处理器包括i386、MIPS、ARM、PowerPC、IA64等等,此外你还可以为它添加其他语言前端和其他处理器后端。gcc性能不俗,还支持交叉编译,为这个星球;)许多软件项目所采用。
源代码调试器:
gdb:GNU项目所开发的源代码调试器,功能强大,是程序员的好助手
内存管理检查器:
valgrind:非常优秀的内存检查器,可以帮助你检测你程序中的内存错误。另外还可以对cache的使用和堆(也可以包括栈)的使用进行分析,让你能够优化你的代码
调用跟踪器:
strace:系统调用跟踪器,可以跟踪你的程序所调用的系统调用
ltrace:动态库调用跟踪器,可以跟踪你的程序所调用的动态库接口
性能分析器:
gprof:binutils中带的性能分析器,可以帮助你优化你的代码,提高程序速度
qprof:另一个性能分析器,支持动态库的性能分析和多线程、多进程性能分析
oprofile:一个系统范围的性能分析器,使用内核模块和一个后台进程进行数据采集,它不但可以获得某个进程的性能分析数据还可以获得内核的性能分析数据