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

開發環境的構成和安裝,

還是不夠的,

還需要對其深入研究和學習,

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM