档案

Archive for the ‘开发工具’ Category

使用astyle格式化代码

2010/01/18 留下评论

astyle是一款代码格式化工具,它的下载地址是:http://sourceforge.net/projects/astyle

一。基本命令

astyle –style=ansi main.cs  (使用ansi风格格式化main.cs)

了解上面的命令就可以格式化一个文件了,下面来看如何格式化目录下的文件

二。格式化目录

for /R %f in (*.cpp;*.cs;) do astyle –style=ansi "%f" (使用ansi风格格式下当前目录下的所有cpp,cs文件,注意:批处理文件时,"%f" 要改为"%%f")

三。参数说明:

(1) -f
在两行不相关的代码之间插入空行,如import和public class之间、public class和成员之间等;
(2) -p
在操作符两边插入空格,如=、+、-等。
如:int a=10*60;
处理后变成int a = 10 * 60;
(3) -P
在括号两边插入空格。另,-d只在括号外面插入空格,-D只在里面插入。
如:System.out.println(1);
处理后变成System.out.println( 1 );
(4) -U
移除括号两边不必要的空格。
如:System.out.println( 1 );
处理后变成System.out.println(1);
(5) -V
将Tab替换为空格。

(6)-N

本条主要针对namespaces,如果没有此参数,效果如下:

namespace foospace
{
class Foo
{
    public:
        Foo();
        virtual ~Foo();
};
}
有此参数就会变成这样:

namespace foospace
{
    class Foo
    {
        public:
            Foo();
            virtual ~Foo();
    };
}

(7) -n

不生成备份文件,即默认的 .orig文件。

C#的默认方式为第二种,所以如果你是用来格式化C#代码的话,这个参数就有用了。

四:加入到VS2008,VS2005中

估计加入到VS2005中也是一样,不过我这里没有VS2005,就说一下VS2008的做法。

工具——>外部工具——>添加

标题:astyle 

命令:AStyle.exe (填好astyle.exe的路径)

参数:–style=allman -N $(ItemDir)$(ItemFileName)$(ItemExt)

初始目录:$(TargetDir)

勾上“使用初始目录”

点击确定完成。以后就可以在工具菜单中找到“astyle“这一项了,点击它,就可以对当前文件进行格式化操作。

五:加入到VS6中

Tools——>Customize——>Tools

标题:astyle 

命令:AStyle.exe (填好astyle.exe的路径)

参数:–style=ansi -s4 –suffix=.orig $(FileName)$(FileExt)

初始目录:$(FileDir)

勾上“Using Output Window”

点击确定完成。以后就可以在工具菜单中找到“astyle“这一项了,点击它,就可以对当前文件进行格式化操作。

六:加入到Ultraedit和UltraStudio

高级–>工具配置——>外部工具——>添加

命令:AStyle.exe  -v –style=ansi -s4 –suffix=.orig "%f"(填好astyle.exe的路径)

Optiones:选择 Windows program和Save Active File.

Output: 选择output to list box,show dos box 和no replace。

点击确定完成。以后就可以在工具菜单中找到“astyle“这一项了,点击它,就可以对当前文件进行格式化操作。

七:加入到Source insight

Options–>Custom Command–>Add

Command:astyle

Run "astyle.exe"  –style=ansi –pad=oper –unpad=paren -s4 –suffix=.orig %f(填好astyle.exe的路径)

Output:不选.

Control: 选择pause when done和exit to window.

source links in output:file, then line

–>menu

add to work menu.

点击确定完成。以后就可以在Work菜单中找到“astyle“这一项了,点击它,就可以对当前文件进行格式化操作。

八:控制台目录批处理(Astyle.bat)

REM bygreencn@gmail.com

REM 批量将本目录中的所有C++文件用Astyle进行代码美化操作

REM 2009-01-05

REM 设置Astyle命令位置和参数

@echo off

set astyle="astyle.exe"

REM 循环遍历目录

for /r . %%a in (*.cpp;*.c) do %astyle% –style=ansi –pad=oper –unpad=paren -s4 -n "%%a"

for /r . %%a in (*.hpp;*.h) do %astyle% –style=ansi –pad=oper –unpad=paren -s4 -n "%%a"

REM 删除所有的astyle生成文件

for /r . %%a in (*.orig) do del "%%a"

pause

分类:开发工具

VC C/C++编译器-cl.exe的命令选项

2010/01/11 留下评论

在IDE中编译相比,命令行模式编译速度更快,并可以避免被IDE产生的一些附加信息所干扰。本文将介绍微软C/C++编译器命令行模式设定和用法。

 

1、设置环境变量:

PATH=C:Program FilesMicrosoft Visual Studio 8VCbin

INCLUDE=C:Program FilesMicrosoft Visual Studio 8VCinclude

LIB=C:Program FilesMicrosoft Visual Studio 8VClib

如果提示找不到mspdb80.dll文件,则从C:Program FilesMicrosoft Visual Studio 8Common7IDE下拷贝“msobj80.dll,mspdb80.dll,mspdbcore.dll,mspdbsrv.exe”这四个文件到C:Program FilesMicrosoft Visual Studio 8VCbin下即可。

 

2、命令选项:

1)       /C:在预处理输出中保留注释语句

2)       /c:只编译,不连接,相当于在"Build"菜单下选择了"Compile"

3)       /D:定义常量和宏,与源程序里的#define 有相同效果

4)       /E:预处理C、C++源文件,将源文件中所有的预编译指令及宏展开,将注释去掉,然后将预处理器的输出拷贝至标准输出设备输出,并且在每个文件的开头和末尾加入#line

5)       /EH:指定编译器用何种异常处理模型

6)       /EP:同/E,只是去掉了#line

7)       /F:设置程序的堆栈大小

8)       /FA:设置生成何种列表文件(汇编、汇编与机器码、汇编与源码、汇编与机器码以及源码)

9)       /Fa:指定用/FA设置的列表文件的存放路径及(或)文件名

10)  /FD:生成文件的相互依赖信息

11)  /Fd:设置程序数据库文件(PDB)的存放路径及(或)文件名

12)  /Fe:设置最终可执行文件的存放路径及(或)文件名

13)  /FI:预处理指定的头文件,与源文件中的#include有相同效果

14)  /Fm:创建map文件

15)  /Fo:设置编译后Obj文件的存放路径及(或)文件名

16)  /Fp:设置预编译文件(pch)的存放路径及(或)文件名

17)  /FR:生成浏览信息(sbr)文件

18)  /Fr:同/FR,不同之处在于/Fr不包括局部变量信息

19)  /G3:为80386处理器优化代码生成

20)  /G4:为80486处理器优化代码生成

21)  /G5:为Pentium处理器优化代码生成

22)  /G6:为Pentium Pro处理器优化代码生成

23)  /GA:为Windows应用程序作优化

24)  /GB:为Pentium处理器优化代码生成,使用80386、80486、Pentium、Pentium Pro的混合指令集,是代码生成的默认选项(程序属性选项中Processor对应Blend)

25)  /GD:为Windows动态库(dll)作优化,此开关在VC6中没有实现

26)  /Gd:指定使用__cdecl的函数调用规则

27)  /Ge:激活堆栈检测

28)  /GF:消除程序中的重复的字符串,并将她放到只读的缓冲区中

29)  /Gf:消除程序中的重复字符串

30)  /Gh:在每个函数的开头调用钩子(hook)函数–penter

31)  /Gi:允许渐进编译

32)  /Gm:允许最小化rebuild

33)  /GR:允许运行时类型信息(Run-Time Type Infomation)

34)  /Gr:指定使用__fastcall的函数调用规则

35)  /Gs:控制堆栈检测所用内存大小

36)  /GT:支持用__declspec(thread)分配的数据的fier-safety

37)  /GX:允许同步异常处理,与/EHsc开关等价

38)  /Gy:允许编译器将每一个函数封装成COMDATs的形式,供连接器调用

39)  /GZ:允许在Debug build 的时候捕捉Release build的错误

40)  /Gz:指定使用__stdcall的函数调用规则

41)  /H:限制外部名字的长度

42)  /HELP:列出编译器的所有的命令开关

43)  /I:指定头文件的搜索路径

44)  /J:将char的缺省类型从signed char改成unsigned char

45)  /LD:创建一个动态连接库

46)  /LDd:创建一个Debug版本的动态链接库

47)  /link:将指定的选项传给连接器

48)  /MD:选择多线程、DLL版本的C Run-Time库

49)  /MDd:选择多线程、DLL、Debug版本的C Run-Time库

50)  /ML:选择单线程版本的C Run—Time库

51)  /MLd:选择单线程、Debug版本的C Run—Time库

52)  /MT:选择多线程版本的C Run-Time库

53)  /MTd:选择多线程、Debug版本的C Run—Time库

54)  /nologo:不显示程序的版权信息

55)  /O1:优化使产生的可执行代码最小

56)  /O2:优化使产生的可执行代码速度最快

57)  /Oa:指示编译器程序里没有使用别名,可以提高程序的执行速度

58)  /Ob:控制内联(inline)函数的展开

59)  /Od:禁止代码优化

60)  /Og:使用全局优化

61)  /Oi:用内部函数去代替程序里的函数调用,可以使程序运行的更快,但程序的长度变长

62)  /Op:提高浮点数比较运算的一致性

63)  /Os:产生尽可能小的可执行代码

64)  /Ot:产生尽可能块的可执行代码

65)  /Ow:指示编译器在函数体内部没有使用别名

66)  /Ox:组合了几个优化开关,达到尽可能多的优化

67)  /Oy:阻止调用堆栈里创建帧指针

68)  /Q1f:对核心级的设备驱动程序生成单独的调试信息

69)  /QI0f:对Pentium 0x0f错误指令作修正

70)  /Qifdiv:对Pentium FDIV错误指令作修正

71)  /P:将预处理输出写到指定文件里,文件的后缀名为I

72)  /TC:将命令行上的所有文件都当作C源程序编译,不管后缀名是否为.c

73)  /Tc:将指定的文件当作C源程序编译,不管后缀名是否为.c

74)  /TP:将命令行上的所有文件都当作C++源程序编译,不管后缀名是否为.cpp

75)  /Tp:将指定文件当作C++源程序编译,不管后缀名是否为.cpp

76)  /U:去掉一个指定的前面定义的符号或常量

77)  /u:去掉所有前面定义的符号或常量

78)  /V:在编译的obj文件里嵌入版本号

79)  /vd:禁止/允许构造函数置换

80)  /vmb:选择指针的表示方法,使用这个开关,在声明指向某个类的成员的指针之前,必须先定义这个类

81)  /vmg:选择指针的表示方法,使用这个开关,在声明指向某个类的成员的指针之前,不必先定义这个类,但要首先指定这个类是使用何种继承方法

82)  /vmm:设置指针的表示方法为Single Inheritance and Multiple Inheritance

83)  /vms:设置指针的表示方法为Single Inheritance

84)  /vmv:设置指针的表示方法为Any class

85)  /W:设置警告等级

86)  /w:禁止所有警告

87)  /X:阻止编译器搜索标准的include 目录

88)  /Yc:创建预编译头文件(pch)

89)  /Yd:在所有的obj文件里写上完全的调试信息

90)  /Yu:在build过程中使用指定的预编译头文件

91)  /YX:指示编译器若预编译头文件存在,则使用它,若不存在,则创建一个

92)  /Z7:生成MSC7.0兼容的调试信息

93)  /Za:禁止语言扩展(Microsoft Extensions to C)

94)  /Zd:调试信息只包含外部和全局的符号信息以及行号信息

95)  /Ze:允许语言扩展(Microsoft Extensions to C)

96)  /Zg:为源文件里面定义的每个函数生成函数原型

97)  /ZI:生成程序库文件(Pdb)并支持Edit and Continue调试特性

98)  /Zi:生成程序库文件(pdb),包含类型信息和符号调试信息

99)  /ZL:从obj文件里去掉缺省的库文件名

100)            /Zm:设置编译器的内存分配xianzhi

101)            /Zn:禁止浏览信息文件里面的封装

102)            /Zp:设置结构成员在内存里面的封装格式

103)            /Zs:快速检查语法错误

--------------------------

vc所支持的文件类型

1)       DSW:全称是Developer Studio Workspace,最高级别的配置文件,记录了整个工作空间的配置信息,她是一个纯文本的文件,在vc创建新项目的时候自动生成

2)       DSP:全称是Developer Studio Project,也是一个配置文件,不过她记录的是一个项目的所有配置信息,纯文本文件

3)       OPT:与DSW、DSP配合使用的配置文件,她记录了与机器硬件有关的信息,同一个项目在不同的机器上的opt文件内容是不同的

4)       CLW:记录了跟ClassWizard相关的信息,如果丢失了clw文件,那么在Class View面板里就没有类信息

5)       PLG:实际上是一个超文本文件,可以用Internet Explorer打开,记录了Build的过程,是一个日志型文件

6)       RC:资源描述文件,记录了所有的资源信息,在资源编辑器里作的修改,实际上都是对RC文件的修改

7)       RC2:附加的资源描述文件,不能直接资源编辑器修改,只能手工添加,可以用来添加额外的资源

8)       RES:经过资源编辑器编译之后的资源文件,以二进制方式存放

9)       SBR:编译器生成的浏览信息文件,在代码导航的时候非常有用,她需要在编译时指定/FR或者/Fr开关

10)  BSC:BSCMAKE.EXE将所有的SBR文件作为输入,经过处理之后输出一个BSC文件,在代码导航的时候实际用到的是BSC文件

11)  ILK:当选定渐增型编译连接时,连接器自动生成ILK文件,记录连接信息

12)  PDB:全称是Program DataBase,即程序数据库文件,用来记录调试信息,是一个相当重要的文件,没有他,程序无法正常调试

13)  LIB:如果项目输出是Dll的话,一般会输出一个跟项目同名的Lib文件,记录输出的函数信息

14)  EXP:同Lib,是跟Dll一起生成的输出文件

15)  PCH:全称是PreCompiled Header,就是预先编译好的头文件,在编译时指定/Yu开关时编译器自动生成

分类:开发工具

VC中cl.exe命令参数简介

2010/01/11 留下评论

cl.exe所在的文件夹里面有一个批处理叫做 
VSVAR32.BAT 
首先运行它一次,你就可以用cl.exe来编译你的代码了。 
(在vs2005里面未发现该文件,怀疑因该是上级目录的vcvarsall.bat,但是不执行该文件同样可进行命令行编译。)
CL.exe 是控制 Microsoft C 和 C++ 编译器与链接器的 32 位工具。编译器产生通用对象文件格式 (COFF) 对象 (.obj) 文件。链接器产生可执行文件 (.exe) 或动态链接库文件 (DLL)。

注意,所有编译器选项都区分大小写。

若要编译但不链接,请使用 /c。

使用 NMAKE 生成输出文件。

使用 BSCMAKE 支持类浏览。

以下是一个完整的编译器选项分类列表。

优化

选项 作用 
/O1 创建小代码 
/O2 创建快速代码 
/Oa 假设没有别名 
/Ob 控制内联展开 
/Od 禁用优化 
/Og 使用全局优化 
/Oi 生成内部函数 
/Op 改善浮点数一致性 
/Os 代码大小优先 
/Ot 代码速度优先 
/Ow 假定在函数调用中使用别名 
/Ox 使用最大优化 (/Ob1gity /Gs) 
/Oy 省略框架指针

代码生成

选项 作用 
/clr 启用 C++ 的托管扩展并产生在公共语言运行库上运行的输出文件 
/EH 指定异常处理模型 
/G3 优化代码以优选 386 处理器。在 Visual C++ 5.0 中已经停用,编译器将忽略此选项 
/G4 优化代码以优选 486 处理器。在 Visual C++ 5.0 中已经停用,编译器将忽略此选项 
/G5 优化代码以优选 Pentium 
/GB 与 /G6 等效;将 _M_IX86 的值设置为 600 
/Gd 使用 __cdecl 调用约定 
/Ge 激活堆栈探测 
/GF 
/GF 启用字符串池 
/GH 调用挂钩函数 _penter 
/GH 调用挂钩函数 _pexit 
/GL 启用全程序优化 
/Gm 启用最小重新生成 
/Gr 启用运行时类型信息 (RTTI) 
/Gr 使用 __fastcall 调用约定 
/GS 控制堆栈探测 
/GT 支持使用静态线程本地存储区分配的数据的纤程安全 
/GX 启用同步异常处理 
/Gy 启用函数级链接 
/GZ 使用 __stdcall 调用约定 
/MD 使用 MSVCRT.lib 创建多线程 DLL 
/MDd 使用 MSVCRTD.lib 创建调试多线程 DLL 
/ML 使用 LIBC.lib 创建单线程可执行文件 
/MLd 使用 LIBCD.lib 创建调试单线程可执行文件 
/MT 使用 LIBCMT.lib 创建多线程可执行文件 
/MTd 使用 LIBCMTD.lib 创建调试多线程可执行文件

输出文件

选项 作用 
/FA 
/FA 创建汇编文件 
设置列表文件名 
/Fd 重命名程序数据库文件 
/Fe 重命名可执行文件 
/Fm 创建映射文件 
/Fo 创建对象文件 
/Fp 指定预编译头文件名 
/FR 
/FR 生成浏览器文件 
/Fx 将插入的代码与源文件合并

调试

选项 作用 
/GS 缓冲区安全检查 
/GZ 与 /RTC1 相同 
/RTC 启用运行时错误检查 
/Wp64 检测 64 位可移植性问题 
/Yd 将完整的调试信息放在所有对象文件中 
/Yl 创建调试库时插入 PCH 引用 
/Z7 生成与 C 7.0 兼容的调试信息 
/Zd 生成行号 
/Zi 生成完整的调试信息

预处理器

选项 作用 
/AI 指定在解析传递到#using 指令的文件引用时搜索的目录 
/c 在预处理期间保留注释 
/D 定义常数和宏 
/E 将预处理器输出复制到标准输出 
/EP 将预处理器输出复制到标准输出 
/Fl 预处理指定的包含文件 
/FU 强制使用文件名,就像它已被传递到#using 指令一样 
/I 在目录中搜索包含文件 
/P 将预处理器输出写入文件 
/U 移除预定义宏 
/U 移除所有的预定义宏 
/X 忽略标准包含目录 
/ZI 将调试信息包含在与“编辑并继续”兼容的程序数据库中

语言

选项 作用 
/noBool 取消 C++ bool、true 和 false 关键字 
/vd 取消或启用隐藏的 vtordisp 类成员 
/vmb 对指向成员的指针使用最佳的基 
/vmg 对指向成员的指针使用完全一般性 
/vmm 声明多重继承 
/vms 声明单一继承 
/vmv 声明虚拟继承 
/Za 禁用语言扩展 
/Zc 在 /Ze 下指定标准行为 
/Ze 启用语言扩展 
/Zg 生成函数原型 
/Zl 从 .obj 文件中移除默认库名 
/Zp n 封装结构成员 
/Zs 只检查语法

链接

选项 作用 
/F 设置堆栈大小 
/LD 创建动态链接库 
/LDd 创建调试动态链接库 
/link 将指定的选项传递给 LINK 
/MD 使用 MSVCRT.lib 编译以创建多线程 DLL 
/MDd 使用 MSVCRTD.lib 编译以创建调试多线程 DLL 
/ML 使用 LIBC.lib 编译以创建单线程可执行文件 
/MLd 使用 LIBCD.lib 编译以创建调试单线程可执行文件 
/MT 使用 LIBCMT.lib 编译以创建多线程可执行文件 
/MTd 使用 LIBCMTD.lib 编译以创建调试多线程可执行文件

预编译头

选项 作用 
/Y- 忽略当前生成中的所有其他预编译头编译器选项 
/Yc 创建预编译头文件 
/Yd 将完整的调试信息放在所有对象文件中 
/Yu 在生成期间使用预编译头文件 
/YX 自动处理预编译头

杂项

选项 作用 
@ 指定响应文件 
/? 列出编译器选项 
/c 编译但不链接 
/H 限制外部(公共)名称的长度 
/HELP 列出编译器选项 
/J 更改默认的 char 类型 
/NOLOGO 取消显示登录版权标志 
/QI0f 确保 Pentium 0F 指令没有问题 
/QIfdiv FDIV、FPREM、FPTAN 和 FPATAN 指令有缺陷的 Intel Pentium 微处理器的变通方法 
QIfist 当需要从浮点类型转换为整型时取消 Helper 函数 _ftol 的调用 
/showIncludes 在编译期间显示所有包含文件的列表 
/Tc 
/Tc 指定 C 源文件 
/Tp 
/Tp 指定 C++ 源文件 
/V 设置版本字符串 
/w 设置警告等级 
/w 禁用所有警告 
/Wall 启用所有警告,包括默认情况下禁用的警告 
/WL 在从命令行编译 C++ 源代码时启用错误信息和警告消息的单行诊断 
/Zm 设置编译器的内存分配限制

CL 命令行使用下列语法:

CL [option…] file… [option | file]… [lib…] [@command-file] [/link link-opt…]

下表说明CL 命令的输入项意义

option 一个或多个 CL 选项。请注意,所有选项都应用于所有指定的源文件。选项是由一个正斜杠 (/) 或一个短划线 (–) 指定的。如果某个选项带有参数,则该选项的说明指定在选项和参数之间是否允许有空格。选项名(/HELP 选项除外)区分大小写。有关更多信息,请参阅 CL 选项的顺序。

file 一个或多个源文件、.obj 文件或库的名称。CL 编译源文件并将 .obj 文件和库的名称传递给链接器。有关更多信息,请参阅 CL 文件名语法。

lib 一个或多个库名。CL 将这些名称传递给链接器。

command-file 包含多个选项和文件名的文件。有关更多信息,请参阅 CL 命令文件。

link-opt 一个或多个链接器选项。CL 将这些选项传递给链接器。

您可以指定任意数目的选项、文件名和库名,条件是命令行上的字符数不超过 1024,该限制是操作系统指定的。

CL 命令文件请参见 
设置编译器选项 | 编译器选项 
命令文件是一个文本文件,它包含您另外在命令行上键入或使用 CL 环境变量指定的选项和文件名。CL 接受在 CL 环境变量中或命令行上用作参数的编译器命令文件。与命令行或 CL 环境变量不同,命令文件允许使用多行选项和文件名。

命令文件中的选项和文件名将根据 CL 环境变量中或命令行上的命令文件名的位置被进行处理。但是,如果 /link 选项出现在命令文件中,则该行其余部分的所有选项将被传递给链接器。命令文件的后面几行中的选项和命令行上命令文件调用之后的选项仍被作为编译器选项接受。

命令文件一定不能包含 CL 命令。每个选项必须在同一行上开始和结束;不能使用反斜杠 () 跨行组合一个选项。

命令文件用一个 @ 符后接一个文件名指定;该文件名可指定绝对路径或相对路径
文章出处:http://www.diybl.com/course/3_program/vc/vc_js/200899/140233.html

分类:开发工具

Linux PC开发环境

2010/01/02 留下评论
软件集成开发环境(代码编辑、浏览、编译、调试)

Emacs            http://www.gnu.org/software/emacs/
Source-Navigator 5.2b2    http://sourceforge.net/projects/sourcenav

Anjuta             http://anjuta.sourceforge.net(可用yum安装)
代码索引工具
Cscope            http://cscope.sourceforge.net/

KScope            http://www.kde-apps.org
GLOBAL            http://www.gnu.org/software/global/(可用yum安装)

调试器(GNU gdb的GUI前端)
DDD            http://www.gnu.org/software/ddd/
Insight 6.4.0        http://sourceware.org/insight/

KDbg            http://www.kdbg.org/
评测器(内存、性能、覆盖等的profiler,类似IBM Purify)
Valgrind        http://www.valgrind.org/,FC5自带3.1.0-2

ggcov(GNU gcov的GUI)    http://ggcov.sourceforge.net/
kprof(GNU gprof的GUI)    http://kprof.sourceforge.net/

KCachegrind        http://kcachegrind.sf.net
BoundsChecking        http://www.doc.ic.ac.uk/~phjk/BoundsChecking.html

代码静态检查工具(类似Windows平台的PC-Lint)
Splint            http://www.splint.org/(可用yum安装)
flawfinder        http://www.dwheeler.com/flawfinder/

代码静态测量工具
–暂缺,Windows上非开源的LineCount(http://liangs.autodebug.com/)统计C/C++/Java代码还凑合。

PyMetrics(http://sourceforge.net/projects/pymetrics/)测量Python代码复杂度。

http://www.chris-lott.org/resources/cmetrics/罗列了好些C static metric tools。

软件构建系统(build system)
SCons            http://www.scons.org/(用yum安装的版本太低)
CMake                http://www.cmake.org/

GNU Make        http://www.gnu.org/software/make/
交叉工具链
crosstool         http://www.kegel.com/crosstool/

代码版本控制系统及相关工具
Subversion         http://subversion.tigris.org (用yum安装)

WorkBench           http://pysvn.tigris.org/(pysvn的附带物)
StatSvn            http://svn.statsvn.org/

mpy-svn-stats        http://mpy-svn-stats.berlios.de/
ViewVC            http://viewvc.tigris.org/

测试框架
CppUnit            http://sourceforge.net/projects/cppunit
CUnit            http://cunit.sourceforge.net/

代码差异工具(比较/制作和应用补丁)
GNU diffutils        http://www.gnu.org/software/diffutils/

kdiff3            http://kdiff3.sourceforge.net/或者http://www.kde-apps.org(可用yum安装)

代码在线文档
doxygen            http://www.stack.nl/~dimitri/doxygen/
离线文档

DocBook            http://www.docbook.org
XMLMind            http://www.xmlmind.com/

代码格式化
astyle(Artistic Style)    http://astyle.sourceforge.net/
indent            http://www.gnu.org/software/indent/

UML建模
ArgoUML            http://argouml.tigris.org

软件工程事务(BUG等)跟踪(类似IBM ClearQuest)
Trac            http://trac.edgewall.org/(基于Pythyon,用yum安装)–感觉和BugFree一样小巧

BugFree            http://www.1zsoft.com/(基于PHP+MySQL)--中小规模软件适用
BugZilla        http://www.bugzilla.org/--配置复杂,使用麻烦

自动化持续构建与测试系统(类似IBM BuildForge)
BuildBot        http://buildbot.sourceforge.net/(基于Python)

Cabie            http://cabie.tigris.org/(基于Perl和MySQL)
系统级别测试框架
DejaGNU            http://www.gnu.org/software/dejagnu/(基于Expect,因而基于Tcl)

QMTest             http://www.codesourcery.com/qmtest/(基于Python)

Linux实用工具
yum            http://linux.duke.edu/projects/yum/,FC4自带yum-2.3.2-7, FC5自带2.6.1-0

wget            http://www.gnu.org/software/wget/
cURL            http://curl.haxx.se/

Wireshark(原名Ethereal)    http://www.wireshark.org,http://www.ethereal.com/(FC自带版本较低)

NcFTP            http://www.ncftp.com/ncftp/
tftp和tftp-server    yum -y install tftp-server和tftp

rp-pppoe        http://www.roaringpenguin.com/penguin/open_source_rp-pppoe.php(FC自带版本较低)

minicom            http://alioth.debian.org/projects/minicom/(FC自带)

TightVNC        http://www.tightvnc.com/
Wine+IEs4Linux        http://www.winehq.org/

            http://www.tatanka.com.br/ies4linux/index-en.html

StarDict        http://stardict.sourceforge.net
fcitx            http://www.fcitx.org

KchmViewer        http://kchmviewer.sourceforge.net
kmhtConvert          http://www.kde-apps.org

永中Office        http://www.evermoresw.com
webmin            sourceforge.net,插件结构

Rsync            http://rsync.samba.org/
wxDFast            http://dfast.sourceforge.net/

FlashGot        http://flashgot.net/
Amarok            http://amarok.kde.org/(iTunes风格的音乐播放器,可yum安装它以及mp3插件amarok-extras-nonfree。wma没搞定)

xmms            http://www.xmms.org/(winamp风格的音乐播放器,可yum安装它以及mp3/wma插件)
MPlayer            http://www.mplayerhq.hu/(Linux下最优秀的多媒体播放器之一,播放速度、支持的文件格式都出色,可yum安装。我的可以播放MPEG4文件、row data和.mp3)

VirtualBox        http://www.virtualbox.org/
qRFCView        http://qrfcview.berlios.de/

打字练习软件
Tuxtype, for Linux&Windows, http://tuxtype.sourceforge.net/

TypeFaster, for Windows, http://typefaster.sourceforge.net/

Python库/工具
pyserial        http://pyserial.sourceforge.net/
pysvn            http://pysvn.tigris.org/

twill            http://twill.idyll.org/
pexpect            http://pexpect.sourceforge.net/

wxPython        http://www.wxpython.org/(可用yum安装,名称wxPython和wxPython-devel)
Snack            http://www.wanware.com/tsgdocs/snack.html

PIL            http://www.pythonware.com/products/pil/index.htm

ReportLab    http://www.reportlab.org/downloads.html
SIP            http://riverbankcomputing.co.uk/sip/index.php(可yum安装,名称Python-SIP)

dogtail         http://people.redhat.com/zcerza/dogtail/index.html

PyChecker        http://pychecker.sourceforge.net/
pylint            http://www.logilab.org/857/(Logilab.org还提供了基于Python的人工智能、科学计算等包)

Winpdb            http://www.digitalpeers.com/pythondebugger/
pydb            http://bashdb.sourceforge.net/pydb/

SPE            http://pythonide.stani.be/
Python数据库方面有个规格Python Database API 2.0,有遵循此规格的对各现有DBMS(sqlite,mysql等)的包装,如pysqlite,MySQLdb

python SIP/MGCP stacks
Shtoom            http://divmod.org/trac/wiki/ShtoomProject

Divmod Sine        http://divmod.org/trac/wiki/DivmodSine
PJSIP            http://www.pjsip.org/(Pjsip now supports Python abstraction for PJSUA-API…)

Sipx利用Python实现了SIP Forum Basic UA Test Suite(http://www.sipfoundry.org/sftf-user-guide.html)

分类:开发工具