Linux系统下的C语言开发都需要学些什么

一、工具的使用

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编写网络程序。

时间: 2024-07-31 14:34:41

Linux系统下的C语言开发都需要学些什么的相关文章

linux系统下C语言调用lapack ,blas库

在利用C语言编程,经常调用其他的软件包,其中lapack,blas库是最常用的两个库,这里讲下在linux系统下,C语言编程如何调用这两个库: 1.首先讲下blas库的调用,这里以两个向量内积函数为例: #include <stdio.h> #include <math.h> double ddot_(int *,double *,int *,double *,int *); int main() { int N=2, INCX=1, INCY=1; double X[2]={1.

web前端开发都要学什么,有前途吗?

web前端开发现在如此火爆,可以说是引领了IT培训行业的一个潮流,那么web前端开发都要学些什么知识呢?为什么这么火有前途吗?现在行业很需要这种人才吗?还是大家盲目跟风,随大流,下面小编对web前端做了具体的研究,给出以下建议与结论. 首先可以告诉你:WEB前端开发时代才刚刚开始! 为什么这么说呢?其实web前端这个职位,并没有一个有效的历史记录可以查询,更没有一个明确的定义,她不像java工程师.ios开发这种一开始就有明确定位的工种一样,是有核心技能可以描述的.比如java开发,顾名思义就是

Linux系统下C++开发工具-远程终端软件使用

通过前面安装Linux系统介绍,紧接着进入搭建Linux开发环境的第二步,选择C++开发工具,以及必要的客户端软件.从而完整的搭建一个Linux下C++开发的环境,便于初学者在该环境下能够很好的学习. 一.代码编辑器 由于采用Windows下开发Linux的C++程序,那么选择一个在Windows中方便代码编辑的工具也是非常的重要.C++代码编辑器种类很多,就连记事本也可以用作C++代码编辑.这里推荐使用UE(UltraEdit)这款功能强大的代码编辑工具. UltraEdit工具是共享软件,可

Linux系统下吉林快-三平台开发环境搭建以及关于变量的基本操作

有问题联系Q1446595067吉林快-三平台开发, 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议.Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进. Python具有丰富和强大的库.它常被昵称为胶水语言,能够把用其他语言制作的各种模块(

迅为iTOP-4412开发板Linux系统下如何配置wifi模块

精英版在 linux 下使用 wifi,需要进行下面的配置: 首先用户在拿到光盘资料以后查看下光盘里面的"linux"->"root_xxxxxxxx.tar.gz"文件,其中的 "xxxxxxxx" 代表linux系统的版本日期, 迅为提供的支持linux下wifi的系统版本是 "root_20150422.tar.gz" , 也就是 2015-04-22 以后的版本(包括 20150422)是支持 wifi 模块的.

linux系统下,11款常见远程桌面控制软件

linux系统下,11款常见远程桌面控制软件 一. Grdc 它是一个用GTK+编写的,适用于gnome桌面环境的远程桌面访问软件.看图: 常见功能: 1.提供全屏,窗口化的远程控制.支持高分辨率下的窗口显示以及调整. 2.可浮动的工具栏 3.可抓取键盘 4.支持建立一个“常用访问列表” 5.连接快速,高效 6.全屏模式下,当鼠标划过屏幕边缘时自动滚动 7.全屏模式下工具栏同样支持浮动效果,可直接进行例如模式切换,键盘抓取最小化等常见操作. 8. rdesktop 支持RDP协议, 9. 支持

Linux系统下修改环境变量PATH路径的三种方法

比如要把/etc/apache/bin目录添加到PATH中,方法有三: 1.#PATH=$PATH:/etc/apache/bin 使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效 2.#vi /etc/profile 在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格) 这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变 3.#vi ~/.bash_profile 修改PATH行,把/et

LINUX系统下Java和Scala的环境配置

LINUX系统下Java和Scala的环境配置 最近,笔者在研究一个有关“自然语言处理”的项目,在这个项目中,需要我们用Spark进行编程.而Spark内核是由Scala语言开发的,所以在使用Spark之前,我们必须配置好Scala,而Scala又是运行在JVM上的,所以在配置Scala之前,先要配置好JDK.下面是我个人的一些总结. 我是在Win7系统下开的虚拟机,虚拟机的系统是CentOS7,在创建虚拟机完成后,它会自带一个OpenJDK,我的版本是这样的: 但是因为最开始不了解这个情况,所

Linux系统下安装phpmyadmin方法

phpmyadmin下载地址:不要分,赶紧去下载吧!http://download.csdn.net/detail/u011986449/7429799 1.找到 /libraries/config.default.php文件(config.default.php复制到phpmyadmin目录下,然后更名为config.inc.php),该文件有如下项目(2-8)须自行配置,windows用写字板(不要用记事本,这是UTF8编码)进行编辑,在linux下直接用vim编辑. 2.查找 $cfg['