本文介绍了Linux的C开发环境的构成和安装,使读者对Linux的C开发环境能有初步的了解。

  你了解Linux吗?相信现在越来越多的人会说“是”的。那么你了解到何种程度呢?不可否认,目前决大多 数的Linux用户对Linux的了解还处于比较低级的层次,他们可能会几条命令、会配几种服务、会用rpm来安装软件、会操作KDE/Gnome界机等等,但是当他们遇到一些需要编译安装的软件时,面对一些简单的出错信息,他们就手足无措了。要想真正跨跃这些初级层次,你就不可能不去了解一些底层的东西,比如本文要讲到的Linux下的C开发环境以及本文之外的其它操作系统知识。

  Linux和C天生有不解之源,大家可能知道Linux的操作系统内核就主要是用C写的,另外Linux下的很多软件也是用C写的,特别是一些著名的服务软件,比如MySQL、Apache等。初学者可能在编译MySQL这样的软件时,遇到过各式各样的错误,其实只要你初步了解了Linux的C开发环境,你就能自选解决安装过程中的一些错误。

  Linux的C开发环境与Windows的有所不同,在Linux下,一个完整的C开发环境包括以下三个组成:

  1、函数库: glibc

  要构架一个完整的C开发环境,Glibc是必不可少的,它是Linux下C的主要函数库。Glibc有两种安装方式:

  A.安装成测试用的函数库    在编译程序时用不同的选项来试用新的函数库   B.安装成主要的C函数库    所有新编译程序均用的函数库

Glibc2含几个附加包:LinuxThreads、locale和crypt,通常它们的文件名随版本不同而类似于下列文件名:

  glibc-2.06.tar.gz   glibc-linuxthreads-2.0.6.tar.gz   glibc-localedate-2.0.6.tar.gz   glibc-crypt-2.0.6.tar.gz

  2、编译器:gcc

  gcc(GNU CCompiler)是GNU推出的功能强大、性能优越的多平台编译器,gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,以下是gcc支持编译的一些源文件的后缀及其解释:

  .c为后缀的文件,C语言源代码文件;   .a为后缀的文件,是由目标文件构成的档案库文件;   .C,.cc或.cxx 为后缀的文件,是C++源代码文件;   .h为后缀的文件,是程序所包含的头文件;   .i 为后缀的文件,是已经预处理过的C源代码文件;   .ii为后缀的文件,是已经预处理过的C++源代码文件;   .m为后缀的文件,是Objective-C源代码文件;   .o为后缀的文件,是编译后的目标文件;   .s为后缀的文件,是汇编语言源代码文件;   .S为后缀的文件,是经过预编译的汇编语言源代码文件。

  3、系统头文件:glibc_header

  缺少了系统头文件的话,很多用到系统功能的C程序将无法编译。

  假如用户在安装过程中少装了这些包,就会无法编译C源程序。初学者有时候选择自己定制软件包来安装,结果遗漏了这些包,导致无法编译源程序,不少人就只好重新安装一遍Linux。其实并不需要这样做,虽然从tar包来安装Linux的C开发环境对于初学者来说比较难,但是我们还是可以通过rpm包来迅速安装Linux的C开发环境的。下面以Red Hat 7.3为例,介绍如何安装Linux的C开发环境,如果是更高版本的Red Hat也可以参考,只是要注意软件版本的不同。

  由于gcc包需要依赖binutils和cpp包,另外make包也是在编译中常用的,所以一共需要8个包来完成安装,它们是:

  cpp-2.96-110.i386.rpm   binutils-2.11.93.0.2-11.i386.rpm   glibc-2.2.5-34.i386.rpm   glibc-kernheaders-2.4-7.14.i386.rpm   glibc-common-2.2.5-34   glibc-devel-2.2.5-34.i386.rpm   gcc-2.96-110.i386.rpm   make-3.79.1-8.i386.rpm

如果连在internet上的话,可以直接从internet上安装,命令依次如下:

  rpm -ivh   ftp://216.254.0.38/linux/redhat/7.3/en/os/i386/RedHat/RPMS/cpp-2.96-110.i386.rpm

  rpm -ivh   ftp://216.254.0.38/linux/redhat/7.3/en/os/i386/RedHat/RPMS/binutils-2.11.93.0.2-11.i386.rpm

  rpm -ivh   ftp://216.254.0.38/linux/redhat/7.3/en/os/i386/RedHat/RPMS/glibc-kernheaders-2.4-7.14.i386.rpm

  rpm -ivh   ftp://216.254.0.38/linux/redhat/7.3/en/os/i386/RedHat/RPMS/glibc-2.2.5-34.i386.rpm

  rpm -ivh   ftp://216.254.0.38/linux/redhat/7.3/en/os/i386/RedHat/RPMS/glibc-devel-2.2.5-34.i386.rpm

  rpm -ivh   ftp://216.254.0.38/linux/redhat/7.3/en/os/i386/RedHat/RPMS/glibc-common-2.2.5-34.i386.rpm

  rpm -ivh   ftp://216.254.0.38/linux/redhat/7.3/en/os/i386/RedHat/RPMS/gcc-2.96-110.i386.rpm

  rpm -ivh   ftp://216.254.0.38/linux/redhat/7.3/en/os/i386/RedHat/RPMS/make-3.79.1-8.i386.rpm

  如果不是连在internet上的话,就要下载下来安装了。安装完后,就构成了最基本的C开发环境,在这个C开发环境中,可以编译多数的C写的应用程序。而对于一个C程序来说,安装完成后通常可以分成三个组成:

  1.可执行文件   2.包含文件   3.库文件

  可执行文件就是最终运行的命令,包含文件是该C程序include的一些定义文件,库文件则是该C程序自定义的库。比如对于用RPM安装的MySQL:可执行文件放在/usr/bin下,包含文件放在/usr/include/mysql下,库文件在/usr/lib/mysql下。只有系统可以找到程序对应的包含文件和库文件,程序可执行文件才能正常运行。

  了解了Linux的C开发环境的构成和安装,还是不够的,还需要对其深入研究和学习,才能够做到“知其然,知其所以然”。

Linux下C开发环境的构成和安装相关推荐

  1. Linux下Java开发环境的搭建Tomcat6+jdk6+eclipse3.5.2+Myeclipse9.0+mysql5.1.47

    Tomcat6+jdk6+eclipse3.5.2+Myeclipse9.0+mysql5.1.47 1.JDK的安装:usr/java/jdk1.6.0_25 下载:jdk-6u25-linux-i ...

  2. linux终端怎样ise,Linux下ISE开发环境的安装zz

    Linux下ISE开发环境的安装zz (2011-03-17 18:55:33) 标签: 杂谈 转自:http://hi.baidu.com/remygo/blog/item/6823f78b83ce ...

  3. Linux下Java开发环境搭建

    最近刚开始玩Linux,搞开发搭建环境是第一步,于是总结了这篇Linux下Java开发环境搭建的博客,记录一下我爬过的坑. 一.JDK的下载 jdk8官方下载地址:http://www.oracle. ...

  4. linux 内网yum,Linux下 内网环境 通过ISO yum安装依赖

    Linux下 内网环境 通过ISO yum安装依赖 上传系统系统镜像 创建镜像挂载点 mkdir iso 将系统镜像挂载到 /iso 挂载点上 [root@localhost home]# mount ...

  5. linux下lua开发环境安装

    我前面我们介绍了nginx+lua环境的搭建,在此我们再来了解下lua开发环境的安装. 目前lua版本已经更新到lua5.3,但是我们在此安装lua5.1,因为5.1运行了好多年,有好多模块都是基于此 ...

  6. Linux下golang开发环境搭建

    对于golang开发来说,Windows下可以用vscode或者liteide都不错,但是Linux下的开发也就只有vim了,所以怎么搞笑的利用vim进行golang开发呢? 参考官方推荐的一个插件: ...

  7. Linux下Minigui开发环境的搭建(PC+S3C2440

    花了两天时间终于把Minigui的开发环境搭建好了,遇到了很多问题,看了很多人的博客,对我的启发很大.关键是以前偷懒装redhat的时候为了省空间,很多库文件都没安装搞的自己很狼狈,不过也由于这个原因 ...

  8. linux下python开发环境搭建_linux下python开发环境之二——安装Eclipse+PyDev

    Eclipse是由java开发的,所以要想让Eclipse跑起来就得安装jdk,在命令行里输入javac就能查看本机是否已经安装好了jdk了. 1.安装jdk 先从oracle官网上下载jdk,放到/ ...

  9. 云服务器ecs搭建环境,ECS云服务器linux下搭建开发环境

    买回来的云服务器,当然要装好开发环境 linux下常用的就是LAMP或者LNMP,这里给大家介绍和实际演示LAMP环境的搭建 1.连接ECS服务器 终端输入 ssh root@你的IP地址 回出现ye ...

最新文章

  1. asp.net分页控件使用详解【附实例下载】
  2. 7.Verilog 条件语句的应用
  3. [原创]位运算符实现两个整数加法运算
  4. terminal 常用 快捷键
  5. 一只快乐的野指针_野酸枣
  6. Mysql,ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
  7. ES:记录curator+nfs进行索引备份、创建快照的一次实践
  8. 优先队列实现原理分析
  9. REST和RESTful有什么区别
  10. java中怎样上传zip_java服务器如何对zip文件分包上传?
  11. 智能汽车“增量部件”争夺战(一):以华为海思为样榜,比亚迪蔚来们的漫漫造芯路
  12. POI合并单元格,赋值
  13. 2016《A survey of transfer learning》迁移学习笔记
  14. 铁路现代化技术系统整理(二)之TMIS
  15. 计算机内存怎么与频率匹配,内存频率,详细教您怎么查看内存条频率
  16. linux不识别ntfs分区,解决linux 不能识别ntfs分区问题(linux系统挂载移动硬盘)
  17. 荣耀锐龙版笔记本怎么样?开箱评测了解一下
  18. 浅谈微博App在网站推广中的应用
  19. 我身边的一些数据库事故 (r5笔记第52天)
  20. js 实现浏览器下载视频2种方法

热门文章

  1. php 显示对像编码,PHP面向对象之旅:类型提示
  2. BugkuCTF-MISC题啊哒,白哥的鸽子
  3. java 向上转型_java向上转型和向下转型
  4. Java 捕获 mybatis异常_3 springboot集成mybatis和全局异常捕获
  5. php怎么把日期加时间,将小时分钟添加到日期时间 - php
  6. 云南大学计算机网络期中考试刘春花,实验九基于CRC编码的检错程序的实现.doc...
  7. 力改变物体形状举例_人教版八年级物理下册第七章《力》知识点大全
  8. java 1的阶乘之和_1-20的阶乘之和(java)
  9. mysql同表字段前4位复制_MySQL不同表之前的字段复制
  10. python产品发布会_【Mac系统 + Python + Django】之开发一个发布会系统【Django模型(三)】...