1. 学习linux,要什么基础要懂C语言吗,还是C和C加加。
区分学习的项,有以下区别:
1 学习Linux的操作及系统维护。
不需要任何基础,针对学习shell编程,及熟知各种Linux系统命令使用即可。如果有python或perl基础则更容易上手。
2 学习Linux内核开发。
Linux的内核是由绝大部分的C语言和少部分汇编语言组成的。要学习Linux内核开发,必须要懂C语言,同时对操作系统原理需要有一定了解。
3 学习Linux平台上的软件开发。
这部分包含很广,有各种各样的要,需要根据项目性质确定基础需求。
2. Linux操作系统中默认安装的C语言编译系统是
Linux操作系统中默认安装的C语言编译系统是GCC(GNU Compiler Collection),是Linux下最常用的C语言编译器,是GNU项目中符合ANSI,C标准的编译系统,能够编译用C、Object C等语言编写的程序。
同时它可以通过不同的前端模块来支持各种语言,如Java、Fortran、Pascal、Mola,3和Ada等。
C语言的标准
1.1 K,RC
1973年,Dennis M Ritchie设计和实现了C语言,从那以后使用者逐渐增加。
1978年,Kernighan 和 Ritchie 合着了《The C Programming Language》,这本书定义的C语言被称为 K,RC 。
1.2 标准 C
随着C语言使用日益广泛,出现了许多新问题,人们迫切希望对C语言进行标准化。
第一个标准:C89
1983年,ANSI成立了一个委员会X3J11,对C语言进行标准化。
1989年,ANSI 批准了第一个C语言标准 X3,159-1989,并于1990年公布,被称为 ANSIC、C89 或 C90。
1990年,这个标准又被批准为ISO标准:ISO,IEC 9899:1990 。
ANSIC标准被ISO采纳,并且ISO发布的修订版也被ANSI采纳,因此ANSI标准和ISO标准实际上没有技术区别。这些名称的含义是相同的:ANSI C、ISO C、标准C。
1994年和1996年,ISO发布了两个技术更正,更正了1990ISOC标准中的错误。
第二个标准:C94
1995年,ISO发布了1990ISOC标准的一个补充,称为AMD1。扩充后的标准被称为C94或C95。
第三个标准:C99
1999年,ISO发布了一个新版本的ISOC标准:ISO,IEC9899:1999,称为C99。
2001年、2004年和2007年,ISO发布了三个技术更正,更正了1999ISOC标准中的错误。
第四个标准:C11
2011年,ISO发布了一个新版本的ISOC标准:ISO,IEC9899:2011,称为C11。C11 是 C语言的最新标准。
1.3 GNUC
1984年,Richard Stallman 发起了GNU计划,它的目标是开发一个完整且自由的Unix-like操作系统(GNU系统)。
GNU系统是一个完整的操作系统,包括操作系统内核和各种工具软件。各种GNU系统的变种(例如Redhat、Ubuntu等)已经被广泛使用,它们使用的操作系统内核都是Linux。虽然这些系统经常被称为Linux,但准确地说,它们是GNU/Linux系统。
GNU在编写Linux时扩展了标准C,称为GNUC。
GNU C的扩展详见:Extensions to the C Language Family
GNU C也称为Linux C,一般用于Linux上的开发,而标准C可以跨平台。
GNU C使用的编译器是GCC。
3. 从事linux 下c开发,要学哪些知识推荐一下每个学习阶段的书籍,越详细越好。
想要把C开发学好,最有效的方法,是从用linux系统开始,安装linux或者linux虚拟机,边用边学。这里推荐一本极好的书《鸟哥liunx私房菜》,通俗易懂,真的很不错!
然后就是C开发,分为两大块:底层与应用!
C开发相对服务器管理较为深奥的,需要长时间的积累,还要了解硬件知识,操作系统的基本原理,Makefile语法等。建议从驱动程序入手,因为驱动程序是linux内核中模块化比较强的部分,相对易于理解,而且链接软件与硬件,能够从整体来学习。
这方面有很多经典书籍,其中入门比较好的有:
《嵌入式Linux应用开发完全手册》 韦东山着
内核与驱动编程类: 《linux设备驱动开发详解》 宋宝华着
《linux内核设计与实现》 Robert Love着 (学内核最好读物)
linux应用编程类: 《Unix环境高级编程》 (被誉为“圣经”)
《linux程序设计》
建议先看应用编程类,因为不涉及底层的内容,相对容易理解。等到这几本书消化的差不多了,就开始看经典之作《linux设备驱动程序》和《深入理解linux内核了》,这两本书非常权威,我也都看过,觉得讲的确实比其他书籍更细节,更准确。
这些基本可以说是最好的学习linux的书籍,只要循序渐进的看书,实践,一定会有效果的。
4. 如何用GCC在linux下编译C语言程序
在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器,假设我们有下面一个非常简单的源程序(hello.c):
int main(int argc,char **argv)
{
printf("Hello Linux
");
}
要编译这个程序,我们只要在命令行下执行:
gcc -o hello hello.c
gcc 编译器就会为我们生成一个hello的可执行文件.执行./hello就可以看到程
序的输出结果了