注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

中吴南顾惟一笑

成功法则就是那19个字

 
 
 

日志

 
 

(转)Linux PC开发环境  

2010-03-16 09:33:40|  分类: R&D |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
软件集成开发环境(代码编辑、浏览、编译、调试)
Source-Navigator  http://sourceforge.net/projects/sourcenav
Anjuta            http://anjuta.sourceforge.net

代码索引工具
Cscope            http://cscope.sourceforge.net/
KScope            http://www.kde-apps.org
GLOBAL            http://www.gnu.org/software/global/

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

评测器(内存、性能、覆盖等的profiler,类似IBM Purify)
Valgrind          http://www.valgrind.org/,
ggcov (gcov的GUI) http://ggcov.sourceforge.net/
kprof (gprof的GUI)http://kprof.sourceforge.net/
KCachegrind       http://kcachegrind.sf.net

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

软件构建系统(build system)
CMake             http://www.cmake.org/
GNU Make          http://www.gnu.org/software/make/

交叉工具链
crosstool         http://www.kegel.com/crosstool/

代码版本控制系统及相关工具
Subversion        http://subversion.tigris.org

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

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

代码在线文档
doxygen           http://www.doxygen.org

离线文档
DocBook           http://www.docbook.org
XMLMind           http://www.xmlmind.com/

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

UML建模
ArgoUML           http://argouml.tigris.org
StarUML        Win32平台上的一个开源的UML/MDA平台

软件工程事务(BUG等)跟踪(类似IBM ClearQuest)
Trac              http://trac.edgewall.org/ (基于Pythyon)--感觉和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实用工具
TightVNC        http://www.tightvnc.com/
KchmViewer      http://kchmviewer.sourceforge.net
Rsync           http://rsync.samba.org/
wxDFast         http://dfast.sourceforge.net/
FlashGot        http://flashgot.net/
xmms            http://www.xmms.org/(winamp风格的音乐播放器)
MPlayer         http://www.mplayerhq.hu/(Linux下最优秀的多媒体播放器之一)
VirtualBox      http://www.virtualbox.org/
qRFCView        http://qrfcview.berlios.de/

C/C++库/工具
wxWidgets        http://www.wxwidgets.org/
PCRE             http://www.pcre.org/(Perl正则式兼容)
GNU Regex        http://directory.fsf.org/regex.html(GNU/Linux环境常用的两个正则表示式包就是PCRE和GNU Regex)
Libxml2          http://xmlsoft.org/(The XML C parser and toolkit of Gnome)
Xerces-C++       http://xml.apache.org/xerces-c/(A validating XML parser written in a portable subset of C++ by the Apache project.)
expat            http://expat.sourceforge.net/(XML parser written in C)
APR              http://apr.apache.org/(跨平台C库)
NSPR             http://www.mozilla.org/projects/nspr/(跨平台C库)
xvidcore         http://www.xvid.org (XViD MPEG4 codec)

编译器/识别器生成工具
Bison            http://www.gnu.org/software/bison/
ANTLR            http://www.antlr.org/

ABNF工具
(1)Parser generators:
APG (ABNF Parser Generator)    http://www.coasttocoastresearch.com/
Yacker             http://www.w3.org/1999/02/26-modules/User/Yacker
(2)Test case generators:
abnfgen            http://www.quut.com/abnfgen/
(3)Verifiers:
There's Bill Fenner's ABNF checker (for cut-and-pasted grammar), an ABNF parser in Perl from Harald Alvestrand, and Chris Newman's abnf.c, a widely used validator (here's its cut-and-paste frontend).

SIP stacks
PJSIP             http://www.pjsip.org/
OpenSIPS(OpenSER) http://www.opensips.org/



Valgrind is an award-winning suite of tools for debugging and profiling Linux programs.当前大家公认Valgrind是最接近IBM商业产品Purify的开源的内存/性能评测工具。

C/C++代码覆盖、性能profiling工具一般基于GNU的gprof和gcov。(还有一类基于模拟器的profiling工具,如IBM Purify, Valgrind)

除了Splint和Flawfinder之外,常用的开源的C/C++代码静态检查工具还有RATS(http://www.fortifysoftware.com/security-resources/rats.jsp),
ITS4(http://www.cigital.com/its4/)
此外,Open Source Quality Project(http://osq.cs.berkeley.edu/)组织了好几个这方面的项目。

SCons是一个与GNUmake, qmake, CMake以及Ant类似的软件构建管理工具。SCons is a next-generation software construction tool, or make tool--that is, a software utility for building software (or other files) and keeping built software up-to-date whenever the underlying input files change.
Scons可以完全替代GNU Automake/Autoconf。Automake/Autoconf脚本configure的作用有两个:一是平台环 境(头文件、数据类型、库等)检测(交叉编译时这部分很重要),二是定制软件特性(例如Minigui的configure的--enable-clipboard选项表示支持剪切板)。scons手册的“Multi-Platform Configuration (Autoconf Functionality)”和“Controlling a Build From the Command Line”两章分别论述了scons是如何支持上诉功能的。
SCons可以结合distcc (http://distcc.samba.org/)和ccache节省大型软件项目的编译时间。

Java项目的构建现在主要用Ant或Maven来做,这两个工具目前也完全局限于Java项目。

CMake(http://www.cmake.org) 是一个Makefile生成器(作用相当于GNU atuotools链),它能为许多native build system(如GNU make, MS VC6, MAC OS Xcode等)生成配置文件。KDE4这个大型软件初期尝试了SCons以解决GNU atuotools链的各种弊端,不过最终选择了CMake。其中的缘由请看
“Why the KDE project switched to CMake”,  http://lwn.net/Articles/188693/。
"跨平台的编译工具,其中最有名的两个是 CMake 和 SCons。CMake 和 SCons大概代表了新一代跨平台编译工具的两种方向。第一种(CMake) 是延续并改良传统 automake, autoconf 工具链,将之合为一体,但最终仍然生成 Makefile, Visual Studio 的 .sln,Xcode的 .xcodebuild 文件,依赖现有编译工具 (make, nmake, vcbuild, xcodebuild) 来编译;第二种则是完全消除现有编译工具的调用,直接调用编译器,scons就属于这一类。从人气上来说,反倒是走改良路线的 cmake 比 scons 好一些..."

按照《Building Embedded Linux Systems》极其详尽的指导,为嵌入式系统开发构建GNU交叉工具链也很困难:gcc/glibc/binutils/kernel版本之间的配合,特定版本的特征,还要考虑补丁...手工来做非常耗时且不大可能成功(碰到问题看文档和使用 Google也不一定能搞定)。用crosstool(http://www.kegel.com/crosstool/,另外在http://www.freaknet.org/martin/crosstool/有 一些解释、补丁等),只需要你有个Linux PC能上网,一个命令(如demo-arm.sh)下去就行。有时间可以深入研究一下这个工具。 Building a gcc / glibc cross-tool chain for use in embedded systems development used to be a scary prospect, requiring iron will, days if not weeks of effort, lots of Unix and Gnu lore, and sometimes willingness to take dodgy shortcuts.
Linux内核的ARM补丁、ARM工具链都可在http://www.arm.linux.org.uk/developer/上找到,这是Linux ARM架构的最权威站点。
注意:
(1) 对一个项目而言,升级交叉编译工具链后,制作的ramdisk内也要以新的C动态库替换掉老的,否则可能导致兼容性问题如程序运行不起来。
(2) 要使得tool chain识别用户添加的库,把库放在arm-linux/arm-linux/usr/lib。为了运行时能找到这个库,制作的 ramdisk也必须包含这个库。
(3) 如果硬件平台没有浮点支持,所以在crosstool的arm.dat文件最后添加如下两行: GCC_EXTRA_C和GLIBC_EXTRA_C;或者不使用demo-arm.sh而是demo-arm-softfloat.sh (注意这两个脚本可能在GCC版本方面并不同步)。在交叉工具链完成后可以用"arm-linux-gcc-v"查看配置情况。
(4) 默认的目标是arm-unknown-linux-gnu,可以在arm.dat中将TARGET设置为"arm-linux"使得编译出来的GCC名字为arm-linux -gcc。

Kompare是KDE自带的一个文件/目录比较工具,比较大目录太慢了,也没有合并功能。在这方面的好工具有Kdiff、Meld和 xxdiff。Meld的没有做汉化,许多菜单、按钮的文字显示不出来或者是乱码。xxdiff还没有尝试过。Kdiff3还有windows版本。
Kdiff3 is very good for large merges, automatic merge facility.
Meld is a visual diff and merge tool. Meld is written with the excellent pygtk toolkit.

Subversion(简称svn)是经典的开源的版本控制系统cvs的替代物。SVN客户端GUI非常丰富。Windows上最流行TortoiseSVN(http://tortoisesvn.tigris.org/),好用且功能强。

Bison 是替代yacc的语法解析器!还有Boost Spirit框架! Spirit is a set of C++ libraries for parsing and output generation implemented as Domain Specific Embedded Languages (DSEL) using Expression templates and Template Meta-Programming.
Bison的-g选项输出语法的自动机的VCG定义。 Visualization of Compiler Graphs。http://vcg.sourceforge.net/






Python库/工具
pexpect         http://pexpect.sourceforge.net/
wxPython        http://www.wxpython.org/
PIL             http://www.pythonware.com/products/pil/index.htm
ReportLab       http://www.reportlab.org/downloads.html
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

wxPython是wxWidgets的Python绑定,类似的Python GUI库还有Tkinter(Python事实上标准的GUI toolkit,基于Tk)、PyGtk(基于GTK+)、PyQt。wxPython的跨平台性非常好,且使用非常简单(安装包就带有大量的范例,这是最好的参考资料)。

The Python Imaging Library (PIL) adds image processing capabilities to your Python interpreter. This library supports many file formats, and provides powerful image processing and graphics capabilities. Python图像处理方面的极好文章:Python and Image processing位于http://python.cn/pipermail/pytho ... October/016910.html。

说到版本控制,不得不提一下目前越来越热的Trac,它是一个非常好的融合了wiki、故障跟踪、版本管理的软件项目管理平台。使用Python编写,版 本管理采用subversion,不过采用的是subversion自带的Swig-python接口。其他的数据存储在sqlite中,系统采用 clearsliver页面模板引擎编写。

wxDFast也是一个图形化的下载工具,支持多线程、断点续传等功能,基于wxWidgets,最大特点是下载速度快。
FlashGot- Best Firefox Download ManagerIntegration.一个下载管理器,将浏览器(Mozilla/Firefox/Flock/Thunderbird)与一些下载工具(GUI的wxDFast/D4X/KGet等,CLI的wget/cURL/WellGet[适合于边下载边播放电影]等)集成起来,使得下载操作就像Windows下用FlashGet那样简单。


CHM是Windows平台帮助文件标准格式,有许多电子书籍(甚至许多关于Unix/Linux的)以此格式发布。Linux平台上有一些阅读/编辑此格式的工具。KchmViewer基于Qt,独立于KDE/Gnome.

http://www.xml-dev.com/blog/ 提到许多好用的XML编辑器。
KXMLEditor是基于KDE的XML显示和编辑工具。
一些公司也发布比商业版功能少但免费的版本:Eclipse的XMLBuddy插件标准版(www.xmlbuddy.com/,提供以下编辑功能:格式化、用户可配置的语法着色、DTD 驱动的代码辅助、验证以及同步的提纲视图格式化功能),Windows平台的XMLSpy家庭版(Home Edition,www.altova.com/),基于Java的XMLmind标准版(Standard Edition,www.xmlmind.com/,网上有中文版)。

Linux是很不错的OS,但现实环境有许多平时工作要用的软件都必须在Windows环境下运行,所以还是没有办法使用Linux。其实安装了WINE 即可使用exe档,也可以使用ie、word、excel、power point、photoshop、adobe acrobat......

Virtual Network Computing (VNC) allows one to view and operate the console of another computer remotely across the network .RealVNC(www.realvnc.com)和TightVNC(www.tightvnc.com) 在Linux和Windows上都有Client/Server合一的版本。我在Windows上安装TightVNC作为VNCServer,配置非常简单:服务器配置只需要设置密码即可。Linux上运行VNC客户端在访问时指定服务器IP并提供密码即可。

备份是系统管理中最艰巨、最容易被忽略的工作之一,同时也是最重要的工作之一。备份是防御硬件故障、非法入侵和系统安全的最大威胁——终端用户的最后一道防线。有许多备份系统价值数千美元,它们使用到处都是Bug的专有版权软件将数据存入昂贵的磁带机中,而实际上有更好的方法:Rsync和廉价的磁盘阵列。

BuildBot基于Python。BuildBot是分布式结构,master监控若干slaves(监视状态,下发命令,搜集结果),各个slave按照指示执行update/compile/test并返回结果。Python和其他许多项目(Python的持续构建报告http://www.python.org/dev/buildbot/;wireshark的构建报告http://buildbot.wireshark.org/trunk/)利用它做持续构建。最简单的调度器是Periodic,每隔N秒(无论库有无变化)呼叫slave一次;其次是Scheduler,每次注意到库变化都呼叫slave一次;最复杂是Nightly,注意到库变化后在特定时间点呼叫slave一次。

dogtail(http://people.redhat.com/zcerza/dogtail/index.html) is a GUI test tool and automation framework written in Python. It uses Accessibility(a11y) technologies to communicate with desktop applications. Dogtail scripts are written in Python and executed like any other Python program. Both dogtail and LDTP (Linux Desktop Testing Project) are test tools that use the same underlying technology (AT-SPI). Beyond that fact, there is no current relationship between dogtail and LDTP. (最初是在http://directory.fsf.org/devel/prog/Python/这个工具发现这个工具的简介。后来发现了marathon--一个基于Python和Java的测试Java Swing GUI的测试工具。其实以上这些GUI测试工具的测试步骤都是如下三步:Record[录制脚本]->Refactor[调整]- >Replay[重放])

pywinauto (https://sourceforge.net/projects/pywinauto/)is Windows GUI automation with Python. No pre-recording or window capture needed before use - just code and run :-)

SIP (http://riverbankcomputing.co.uk/sip/index.php) is a tool for automatically generating Python bindings for C and C++ libraries. It was originally developed to create PyQt, the Python bindings for the Qt toolkit, but can be used to create bindings for any C or C++ library.
SIP is included with all of the major Linux distributions. However, it may be a version or two out of date.
PySWT(http://www.cs.nyu.edu/zilin/pyswt/pmwiki.php?n=PySWT.Introduction)是用SIP扩展Python的一个好例子(它包装了Eclipse采用的SWT库,这只是作者做的原始版本而已)。这个页面比较了SWIG和SIP两种包装方法,认为SIP更易用。

Pyreverse is a set of tools for reverse engineering Python code. So far, it features dependency analysis tools, unit test skeleton generation, quick UML like diagrams generation and XMI generation for importation in a UML modeling tool. A special module can be used to generate files readable by Argo UML.

Winpdb – An Advanced Python Debugger. Winpdb is an GPL Python debugger, with support for smart breakpoints, multiple threads, namespace modification, embedded debugging, password encrypted communication and speed of up to 20 times that of pdb.它基于wxPython。比Python自带的IDLE的调试功能更强,更好用,速度也更快(IDLE里面执行一行代码很慢)。Winpdb只有很少的在线文档,启动命令:"_winpdb.py-t"。调试器Launch一个Python脚本时使用的就是启动调试器时的那个Python解释器,似乎没有办法更换。

pydbis an expanded version of the Python debugger loosely based on the gdb command set. It also has all of the features found in an earlier version of pydb.py that was distributed with the debugger GUI ddd.早期的pydb是DDD的一个插件,而现在的版本基于gdb命令行,所以还可以集成到Emacs中。

免费的PythonIDE很多, SPE(http://pythonide.stani.be/)基于wxPython,集成了UML,语法检查工具PyChecker, 调试器Winpdb, GUI设计器wxGlade和XRC, 3D建模器和游戏引擎Blender...,它像Python自带的IDLE那样有命令行,但编辑代码等功能显然更好,显示汉字没问题。

wxWidgets lets developers create applications for Win32, Mac OS X, GTK+, X11, Motif, WinCE, and more using one code base. It can be used from languages such as C++, Python, Perl, and C#/.NET. Unlike other cross-platform toolkits, wxWidgets applications look and feel native.
  评论这张
 
阅读(963)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017