admin 管理员组文章数量: 1184232
2024年3月11日发(作者:linux系统安装打印机驱动方法)
linux环境下的c++编程
就C++开发工具而言,与Windows下微软(VC, VS2005等)一统天下相比,
Linux/Unix下C++开发,可谓五花八门,各式各样。Emacs, vi, eclipse, anjuta,kdevelop等
层出不穷。
Windows下,开发工具多以集成开发环境IDE的形式展现给最终用户。例如,
VS2005集成了编辑器,宏汇编ml,C /C++编译器cl,资源编译器rc,调试器,文档生成工
具, nmake。它们以集成方式提供给最终用户,对于初学者而言十分方便。但是,这种商业
模式,直接导致用户可定制性差,不利于自动化,集成第三方工具的能力弱。
例如,无法定制一些宏来处理一些重复操作;体会不到自动化makefile一步到位快感;无法
远程登录到服务器上进行开发;无法使用某种粘合剂来把第三方工具(例如,文本工具,字
符串工具)有效地调用起来。可以说,良好的商业支持和傻瓜式开发,是它们主要的优点。
在linux下,开发工具被切割成一个个独立的小工具。各自处理不同的问题。例如:
编辑器(emacs, vim) 用来进行编辑程序的
调试器(gdb) 用来调试程序
编译器(GCC) 用来编译和链接程序的
性能分析工具(gcov, gprof) 用来优化程序的
文档生成器(doxygen) 用来生成文档的
同时,还有一些系统工具和系统知识,我们是很有必要了解的:程序自动化机制
makefile,系统粘合剂shell,系统查找工具grep, locate, find。其它的工具(例如ctags, OCI
公司的MPC等等),一旦熟练掌握,它们将成为你手中的利器。
本文主要是一些针对LINUX下开发工具使用的经验之谈。由于,工具品种繁多,
我们没有能力也没有必要一一介绍。对于LINUX下IDE工具,例如 eclipse, anjuta等,它
们虽然也很实用,但是使用起来比较简单,而且目前还算不上主流。所以,它们将不被着重
介绍。同时,本文也不打算写成各个工具的操作手册,只着眼于介绍各个工具的想要解决的
问题、运行机理和主要特性。
编辑器
要进行开发,第一件事情就是选择一个合适的编辑器。编辑器选择有几个要素:
1)减少不必要的编辑动作,减少编辑的时间。
一切能够无二义性描述出来的编辑任务,都可以而且应该能被自动化。例如,每一
个C++程序都会有一个main函数;我们在定义.h文件时,都希望加入一些预处理指令#
define来帮我们解决重复引用同一个头文件而带来的麻烦。鼠标操作总是比键盘操作要慢
的。这方面 EMACS 做得可算是到了极致。所以, EMACS用户经常会吹嘘:他们编辑的
速度等同于他们思考的速度。
======================================================================
=======
链表处理语言 (有专贴)
LISP(全名LISt Processor,即链表处理语言),由约翰·麦卡锡在1960年左右创造的一
种基于λ演算的函数式编程语言。
LISP有很多种方言,各个实现中的语言不完全一样。各种LISP方言的长处在于操作符
号性的数据和复杂的数据结构。1980年代Guy L. Steele编写了Common Lisp试图进行标准
化,这个标准被大多数解释器和编译器所接受。在Unix/Linux系统中,还有一种和Emacs
一起的Emacs Lisp(而Emacs正是用Lisp编写的)非常流行,并建立了自己的标准。
LISP的祖先是1950年代Carnegie-Mellon大学的Newell、Shaw、Simon开发的IPL语言。
LISP语言的主要现代版本包括Common Lisp和Scheme。
lisp拥有理论上最高的运算能力
lisp在cad绘图软件上的应用非常广泛,普通用户均可以用lisp编写出各种定制的绘图
命令。
======================================================================
=======
2)可扩展性高。
程序员预期的编辑器应该能提供一些编程的帮助,例如,语法高亮,自动补齐,自
动排版,语法检查等等。留心观察一下gedit, vim, emacs, ultraEdit,就会发现它们提供的远
不是windows 记事本,写字板提供的那么简陋的功能。对于一种新的语言,新的语法,它
们应该能很方便地提供支持,而不停留在一种或几种固定的语言上。
3)用户可定制性高。
版权声明:本文标题:linux环境下的c++编程 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1710113608a558352.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论