系统调用应用软件与操作系统的接口,其重要性自然不用说,一定要掌
握。推荐学习资料为steven先生的UNIX环境高级编程(简称APUE)。
一、工具的使用
1、学会使用vim/emacs,vim/emacs是linux下最常用的源码编辑
具,不光要学会用它们编辑源码,还要学会用它们进行查找、定位、替
换等。新手的话推荐使用vim,这也是我目前使用的文本编辑器。
2、学会makefile文件的编写规则,并结合使用工具aclocal、
autoconf和automake生成makefile文件。
3、掌握gcc和gdb的基本用法。掌握gcc的用法对于构建一个软件包
很有益处,当软件包包含的文件比较多的时候,你还能用gcc把它手动
编译出来,你就会对软件包中各个文件间的依赖关系有一个清晰的了解
。
4、掌握svn/cvs的基本用法。这是linux,也是开源社区最常用的版
本管理系统。可以去试着参加sourceforge上的一些开源项目。
二、linux/unix系统调用与标准C库
系统调用应用软件与操作系统的接口,其重要性自然不用说,一定
要掌握。推荐学习资料为steven先生的UNIX环境高级编程(简称APUE)
。
三、库的学习
无论是在哪个平台做软件开发,对于库的学习都很重要,linux下的
开发库很多,我主要介绍一下我常常用到的一些库。
1、glib库
glib库是gtk+和gnome的基础库,并具是跨平台的,在linux、unix
和windows下都可以用。glib库对于linux平台开发的影响就像MFC对
windows平台开发的影响一样,很多开源项目都大量的使用了glib库,
包括gimp、gnome、gaim、evolution和 linux下的集群软件
heartbeat。因为glib库自带有基本的数据结构实现,所以在学习glib库
的时候可以顺便学习一下基本的数据结构(包括链表、树、队列和hash
表)。
2、libxml库
libxml是linux平台下解析XML文件的一个基础库,现在很多实用软
件都用XML格式的配置文件,所以也有必要学习一下。
3、readline库
readline库是bash shell用的库,如果要开发命令行程序,那么使用
readline库可以减少很多工作量,比如bash里的命令行自动补全,在
readline里就已经有实现,当然你也可以用自己的实现替代库的行为。
readline库有很多网站介绍的,只要google一下readline就可以找到一
堆了。
4、curses库
curses库以前是vi程序的一部分,后来从vi里提取出来成为一个独立
的库。curses库对于编写终端相关的程序特别有用,比如要在终端某一
行某一列定位输出,改变终端字体的颜色和终端模式。linux下的
curses库用的是GNU实现的ncurses(new curses的意思)。
5、gtk+和KDE库
这两个库是开发GUI应用程序的基础库,现在linux下的大部份GUI程
序都是基于这两个库开发的,对于它们的学习也是很有必要的。
四、网络的学习
网络这个东西太宽了,推荐学习资料steven先生的UNIX网络编程(简
称UNP)和TCP/IP协议详解,更进一步的话可以学习使用libnet编写网络
程序。
Dev-C++是一个Windows下的C和C++程序的集成开发环境。它使用
MingW32/GCC编译器,遵循C/C++标准。开发环境包括多页面窗口、
工程编辑器以及调试器等,在工程编辑器中集合了编辑器、编译器、连
接程序和执行程序,提供高亮度语法显示的,以减少编辑错误,还有完
善的调试功能,能够适合初学者与编程高手的不同需求,是学习C或
C++的首选开发工具!多国语言版中包含简繁体中文语言界面及技巧提
示,还有英语、俄语、法语、德语、意大利语等二十多个国家和地区语
言提供选择。
握。推荐学习资料为steven先生的UNIX环境高级编程(简称APUE)。
一、工具的使用
1、学会使用vim/emacs,vim/emacs是linux下最常用的源码编辑
具,不光要学会用它们编辑源码,还要学会用它们进行查找、定位、替
换等。新手的话推荐使用vim,这也是我目前使用的文本编辑器。
2、学会makefile文件的编写规则,并结合使用工具aclocal、
autoconf和automake生成makefile文件。
3、掌握gcc和gdb的基本用法。掌握gcc的用法对于构建一个软件包
很有益处,当软件包包含的文件比较多的时候,你还能用gcc把它手动
编译出来,你就会对软件包中各个文件间的依赖关系有一个清晰的了解
。
4、掌握svn/cvs的基本用法。这是linux,也是开源社区最常用的版
本管理系统。可以去试着参加sourceforge上的一些开源项目。
二、linux/unix系统调用与标准C库
系统调用应用软件与操作系统的接口,其重要性自然不用说,一定
要掌握。推荐学习资料为steven先生的UNIX环境高级编程(简称APUE)
。
三、库的学习
无论是在哪个平台做软件开发,对于库的学习都很重要,linux下的
开发库很多,我主要介绍一下我常常用到的一些库。
1、glib库
glib库是gtk+和gnome的基础库,并具是跨平台的,在linux、unix
和windows下都可以用。glib库对于linux平台开发的影响就像MFC对
windows平台开发的影响一样,很多开源项目都大量的使用了glib库,
包括gimp、gnome、gaim、evolution和 linux下的集群软件
heartbeat。因为glib库自带有基本的数据结构实现,所以在学习glib库
的时候可以顺便学习一下基本的数据结构(包括链表、树、队列和hash
表)。
2、libxml库
libxml是linux平台下解析XML文件的一个基础库,现在很多实用软
件都用XML格式的配置文件,所以也有必要学习一下。
3、readline库
readline库是bash shell用的库,如果要开发命令行程序,那么使用
readline库可以减少很多工作量,比如bash里的命令行自动补全,在
readline里就已经有实现,当然你也可以用自己的实现替代库的行为。
readline库有很多网站介绍的,只要google一下readline就可以找到一
堆了。
4、curses库
curses库以前是vi程序的一部分,后来从vi里提取出来成为一个独立
的库。curses库对于编写终端相关的程序特别有用,比如要在终端某一
行某一列定位输出,改变终端字体的颜色和终端模式。linux下的
curses库用的是GNU实现的ncurses(new curses的意思)。
5、gtk+和KDE库
这两个库是开发GUI应用程序的基础库,现在linux下的大部份GUI程
序都是基于这两个库开发的,对于它们的学习也是很有必要的。
四、网络的学习
网络这个东西太宽了,推荐学习资料steven先生的UNIX网络编程(简
称UNP)和TCP/IP协议详解,更进一步的话可以学习使用libnet编写网络
程序。
Dev-C++是一个Windows下的C和C++程序的集成开发环境。它使用
MingW32/GCC编译器,遵循C/C++标准。开发环境包括多页面窗口、
工程编辑器以及调试器等,在工程编辑器中集合了编辑器、编译器、连
接程序和执行程序,提供高亮度语法显示的,以减少编辑错误,还有完
善的调试功能,能够适合初学者与编程高手的不同需求,是学习C或
C++的首选开发工具!多国语言版中包含简繁体中文语言界面及技巧提
示,还有英语、俄语、法语、德语、意大利语等二十多个国家和地区语
言提供选择。