Open Source 开发工具集

转自:http://www.linuxforum.net
原作者:gogoliu(Pooh-Bah)

编辑器: 
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:一个系统范围的性能分析器,使用内核模块和一个后台进程进行数据采集,它不但可以获得某个进程的性能分析数据还可以获得内核的性能分析数据

编辑辅助工具: 
indent:源代码美化工具,可以对源代码进行缩进和折行等排版美化工作。

软件度量工具: 
sloccount:源代码行数统计工具,可以统计出某目录下各种语言的代码行数。

gcov+lcov:gcov是gcc自带的代码覆盖分析工具,可以追踪程序运行时哪部分代码被执行了,该部分代码执行的频率,以及执行的时间消耗。这可以帮助你测试软件已经进行程序优化。lcov是gcov的一个扩展,可以提供直观的分析信息。

Open Source 开发工具集的更多相关文章

  1. 界面开发工具集Telerik UI for ASP.NET AJAX发布R2 2019

    Telerik UI for ASP.NET AJAX拥有构建ASP.NET AJAX和SharePoint应用程序的80+控件,将为任何浏览器和设备构建Web Forms应用程序的时间缩短一半.Te ...

  2. Visual Studio 2015和ASP.NET 5中可用的前端开发工具集

    最近微软发布了一本白皮书,谈到了一些可以和Visual Studio 2015和ASP.NET 5配合使用的JS/前端Web开发工具(比如:函数库.任务执行器.框架等). 由于现在前端开发的生态系统在 ...

  3. 角落的开发工具集之Vs(Visual Studio)2017插件推荐

    因为最近录制视频的缘故,很多朋友都在QQ群留言,或者微信公众号私信我,问我一些工具和一些插件啊,怎么使用的啊?那么今天我忙里偷闲整理一下清单,然后在这里面公布出来. Visual Studio 201 ...

  4. 【转】角落的开发工具集之Vs(Visual Studio)2017插件推荐

    因为最近录制视频的缘故,很多朋友都在QQ群留言,或者微信公众号私信我,问我一些工具和一些插件啊,怎么使用的啊?那么今天我忙里偷闲整理一下清单,然后在这里面公布出来. Visual Studio 201 ...

  5. Android高效的应用程序开发工具集1---ant构建一个简单的Android工程

    在java编译那些事通过提到ant编译Java工程,如今扩大到用它来构建Android目,事实上道理是相通的.变化的仅仅是使用的形式.ant构建相比IDE的优点是多个子项目使用自己定义jar包时,an ...

  6. iOS程序员的React Native开发工具集

    本文整理了React Native iOS开发过程中有用的工具.服务.测试.库以及网站等. 工具 你可以选择不同的开发环境:DECO.EXPO或者你可以使用Nuclide+Atom,目前我使用EXPO ...

  7. sanri-tools-maven 企业软件开发工具集

    9420 开发工具包 sanri-tools-maven 是一个开源的用于企业开发的工具包,重点想解决项目开发中一些比较麻烦的问题 根据表和模板生成相应代码:一些身份证,企业代码,车架号的验证与生成: ...

  8. iOS网络开发工具集----字符串操作和时间操作

    一.字符串的操作方法 #pragma mark - 创建字符串 - (void)CreatString { // <1> 创建字符串 NSString *strS = @"Thi ...

  9. kettle系列-4.kettle定制化开发工具类

    要说的话这个工具类还是比较简单的,每个方法体都比较小,但用起来还是可以的,把开发中一些常用的步骤封装了下,不用去kettle源码中找相关操作的具体实现了. 算了废话不多了,直接上重点,代码如下: im ...

随机推荐

  1. nc/netcat命令

    nc/netcat命令 语法 nc/netcat(选项)(参数) 选项 -g<网关>:设置路由器跃程通信网关,最多设置8个: -G<指向器数目>:设置来源路由指向器,其数值为4 ...

  2. 什么是IIS ?

    IIS是Internet Information Services的缩写,是由微软公司提供的基于运行Microsoft Windows的互联网基本服务. 它包括WWW服务器.FTP服务器和SMTP服务 ...

  3. 日积月累---JVM01

    Java体系结构包括四个独立但相关的技术: Java程序设计语言 Java class文件格式 Java应用编程接口 Java虚拟机 用Java编程语言编写源代码,把它编译成Java class文件, ...

  4. Openresty 进行限流的方法

    1.使用Openresty进行限流, 使用漏桶原理进行设计 和路由系统设计类似. LUA脚本去通过变量去redis取值,从redis中得到队列的大小.漏和桶的大小. 然后通过比较,队列大小与漏和桶进行 ...

  5. [转载] java多线程总结(三)

    转载自: http://www.cnblogs.com/lwbqqyumidi/p/3821389.html 作者:Windstep 本文主要接着前面多线程的两篇文章总结Java多线程中的线程安全问题 ...

  6. linux 入门学习

    一.命令 1.命令提示符 [root@localhost ~]# [] :提示符的分隔符,无特殊含义: root:当前的登录用户: @:分隔符,无特殊含义: localhost:当前主机名(完整名称: ...

  7. bind啊你返回的函数到底是个虾米

    一般apply().call()和bind()会一起比较. 他们三个都是改变this对象指向的方法. apply()和cal()方法是会立即执行,apply把参数作为数组,call方法接收一个一个的参 ...

  8. vuex核心

    最详细的Vuex教程 什么是Vuex? vuex是一个专门为vue.js设计的集中式状态管理架构.状态?我把它理解为在data中的属性需要共享给其他vue组件使用的部分,就叫做状态.简单的说就是dat ...

  9. js中 setTimeout延时0毫秒的作用

    经常看到setTimeout延时0ms的javascript代码,感到很迷惑,难道延时0ms和不延时不是一个道理吗?后来通过查资料以及实验得出以下两个作用,可能还有作用我还不知道,希望得知的朋友在后面 ...

  10. erlang link 与 monitor

    erlang设计中,通常会有这样一个需求: 某一个进程必须依赖于令一个进程的概念,在这样的情况下就必须对两个进程之间建立一个监控或者说连接关系,以监听对方的死亡情况. erlang 提供了两个这样的方 ...