linux c语言开发(Linux怎么学)
大家好,今天小编来为大家解答以下的问题,关于linux c语言开发,Linux怎么学这个很多人还不知道,现在让我们一起来看看吧!
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程序都是基于这两个库开发的,对于它们的学习也是很有必要的。四、网络的学习
Linux下做C语言开发,有哪些好用的工具,召唤最佳答案
Linux下的主要的C语言编译器
1. GCC
大名鼎鼎的GNU的C/C++/Obj-C编译器,当前版本是2.8.1,但据说与2.7.*有兼容性
问题.而使用较广的是gcc 2.7.2系列,如RedHat5中带的就是gcc 2.7.2.3
有时候在Cyrix上用gcc会有些问题,因此有一套针对Cyrix特点的gcc 2.7.2.3
我这里有RedHat5的rpms
(Cyrix 2.7.2.3& 2.8.1)
其基本结构就是一个front end和back end,
/usr/bin/gcc就是个front end,其kernel东西都放在/usr/lib/gcc-lib下面,
cpp是C预处理器, cc1*的1M多的就是编译器的核心模块了
cc1 C compiler
cc1plus C++ compiler
cc1obj Object-C compiler
但gcc并没有集成Fortran的compiler,一般要用f2c转成C后才用gcc编译
好象也还有个g77 Fortran compiler吧?
gcc的不断发展完善使许多commercial compiler都相形见绌,那当然, gcc/emacs
都由GNU创始人Richard Stallman手创,是GNU的旗舰产品,质量当然没得说了:-)
由于 Unix平台的高度可移植性, gcc几乎在各种常见的Unix平台上都有,即使是
Win32/DOS也有gcc的port.比如说该死的Solaris普通版本连compiler都没有,也
就只好用gcc了...
2. EGCS(Experimental/Enhanced GNU Compiler System)
这是gcc的发展方向,把fortran等编译器集成进来,也许还会有Pascal?
它的构造很清晰,把对gcc的各种改进/port都集成回去.如gcc 2.7系列据说是
没有对Pentium进行优化的,而egcs则把pgcc对Pentium的一些优化集成进去了
现在gcc的开发工作主要就是egcs,由Cygnus公司领导(?),这Cygnus公司还是很
不错的,还出了GNU-Win32, SourceNavigator等,是GNU的坚实拥护者:-))
包括了C/C++/Obj-C/Fortran编译器,当前最新版本1.0.2,还在不断开发中
昨天download发现KDE Beta4都用egcs编译了:-)
Fortran集成进来后在/usr/lib/gcc-lib下又多了个f771的back end,当然
还是g77/f77编译
我这里有egcs 1.0.2的rpm在RH5-CD/collect下面
3. PGCC(Pentium GCC)
针对Pentium CPU进行了编译器优化的compiler
pgcc据说用JPEG压缩解压缩测试最快可比gcc快 30%!
新版的pgcc都是基于egcs的,以一个patch的形式release
嗨!真是的……
linux系统能够编写c语言吗
可以打开一个终端,键入gcc--version。如果可以看到gcc的版本号,则说明可以编译。否则需要手动安装。
要编译C语言程序,一般的命令为:
gcc<C_FILES>-o<TARGETFILE><OPTIONS>-I<INCLUE_PATH>
C_FILES:需要编译的源文件列表,如果有多个,用空格分隔。
TARGETFILE:要生成的目标文件。
OPTIONS:编译选项列表,具体可以通过man gcc查看。
INCLUE_PATH:自定义头文件路径,如果有多个,每个路径前面都要加-I。