• linux搭建C开发环境


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

     

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

     

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

     

       1、函数库: glibc 

     

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

     

       A.安装成测试用的函数库 

        在编译程序时用不同的选项来试用新的函数库 

       B.安装成主要的C函数库 

        所有新编译程序均用的函数库 

     

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

     

       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编译器能将CC++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,以下是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包来安装LinuxC开发环境对于初学者来说比较难,但是我们还是可以通过rpm包来迅速安装LinuxC开发环境的。下面以Red Hat 7.3为例,介绍如何安装LinuxC开发环境,如果是更高版本的Red Hat也可以参考,只是要注意软件版本的不同。 

     

       由于gcc包需要依赖binutilscpp包,另外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

    用户对

    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

    开发环境的构成和安装,

    还是不够的,

    还需要对其深入研究和学习,

    才能够做到“知其然,知其所以然”

  • 相关阅读:
    图像处理检测方法 — SIFT和SURF
    代码题(31)— 有效的括号、括号生成、最长有效括号
    代码题(30)— 二叉搜索树、二叉树的最近公共祖先
    【angularjs】使用angular搭建项目,实现隔行换色
    【css3】nth-child
    【window】Windows10下为PHP安装redis扩展
    【css】3d导航效果
    【angularjs】使用angularjs模拟淘宝首页-淘宝头条滚动效果
    【js】横/纵向无缝滚动
    【angularjs】使用ionic+angular 搭建移动端项目,字体适配
  • 原文地址:https://www.cnblogs.com/mingforyou/p/4118066.html
Copyright © 2020-2023  润新知