国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

CentOS7.0源代碼安裝GTK+3.22.7

2019-11-14 10:28:46
字體:
供稿:網(wǎng)友

首先:C代碼的源碼安裝必須要安裝gcc的編譯器,CentOS7.0裝好之后默認(rèn)是不安裝gcc編譯器的。

            安裝gcc:rpm -ivh gcc-4.8.5-4.el7.x86_64.rpm    

            安裝上g++:rpm -ivh gcc-c++-4.8.5-4.el7.x86_64.rpm

下面介紹安裝GTK+要用到的rpm包、源碼壓縮包、yum安裝命令、./configure(配置)時(shí)用到的參數(shù)以及安裝了那些東西,安裝位置:

           1、rpm包在CentOS光盤的Packages文件夾中又幾乎全部的rpm包,上面安裝編譯器的包就是從Packages文件夾中找到的,基本不用另

                 外下載。查找某個(gè)rpm包命令:ls -l | grep [xxxx]

           2、源代碼壓縮包在GTK+官網(wǎng)上需要Glib2.50,ATK2.22,Gdk-Pixbuf2.36,GObject-Introspection1.50,Pango1.40,GTK+3.22

                 六個(gè)源代碼壓縮包,實(shí)際安裝過程中由于依賴關(guān)系存在還可能需要其他的源代碼包,等用到再作說明。GTK+官網(wǎng)所需源碼包截

                 圖(GTK+的官網(wǎng)沒事多看看):

             

            3、yum命令安裝,既然Packages里面有幾乎全部的rpm包干嘛還使用yum命令?實(shí)際安裝包過程中,包的依賴包太多,依賴包又需要

                  大量其他的依賴包,容易搞混,使用一個(gè)yum命令輕松搞定。

            4、源碼安裝庫或者程序是./configure這一步一般不用給出參數(shù),大不了給出--PRefix=/opt/gtk+參數(shù)更改默認(rèn)的安裝位置,安裝

                  gtk+的過程中還會(huì)用到其他的參數(shù)用到時(shí)候再做說明。

            5、安裝位置:在gtk+的安裝過程中,所有源碼安裝的文件都默認(rèn)安裝在/usr/local下的bin,include,lib,share。bin下是二進(jìn)制的可執(zhí)行

                  命令,include下是C語言的頭文件,就是.h文件,lib里面就是一些庫文件,share就是一些說明文檔、幫助文檔,就是是用man命

                  令是出來的幫助。

在安裝GTK+之前先介紹GTK+所需要的每一個(gè)依賴包或者庫的作用,下面這張圖很詳細(xì)說明了GTK+的構(gòu)成:

             

             1)Glib:The GLib library provides core non-graphical(繪畫的) functionality(功能) such as high level data types, Unicode 

                               manipulation(操作、控制), and an object and type system to C programs(GTK+官網(wǎng)對Glib庫的介紹)。其實(shí)就

                               是linux平臺下常用的C語言函數(shù)庫,提供了C語言的常用數(shù)據(jù)結(jié)構(gòu)的定義、相關(guān)的處理函數(shù),有趣而實(shí)用的宏,可

                               以值的封裝和一些運(yùn)行時(shí)機(jī)能,如事件循環(huán)、線程、動(dòng)態(tài)調(diào)用、對象系統(tǒng)等的API。

             2)ATK:ATK is the accessibility(易接近、可達(dá)的) Toolkit(工具包). It provides a set of generic(一般的) interfaces allowing 

                              accessibility technologies such as screen readers to interact (互動(dòng))with a graphical user interface(GTK+官網(wǎng)對ATK

                              庫的介紹)。

             3)Cairo:在GTK+的官網(wǎng)中并沒有提到需要它,實(shí)際肯定需要。是一個(gè)跨平臺的開放源代碼的矢量圖形函數(shù)庫,可以提供高質(zhì)量的顯

                                 示和打印輸出。主戰(zhàn)場在Linux的Gnome桌面環(huán)境領(lǐng)域。

            4)Gdk-Pixbuf:provides facilities(能力,場,設(shè)備) for loading images in a variety of file formats(GTK+官網(wǎng)對Gdk-Pixbuf的介

                                          紹)。做界面開發(fā)嗎,專門處理圖片的。

            5)Gobject-Introspection:is a framework for making introspection(自我反省; 內(nèi)省) data available to language 

                                                             bindings(GTK+官網(wǎng)對GIOde介紹)。上圖中GIO,用于產(chǎn)生與解析 C 程序庫 API 元信

                                                             息,以便于動(dòng)態(tài)語言(或托管語言)綁定基于 C + GObject 的程序庫。

           6)Pango:is a library for internationalized text handling(GTK+官網(wǎng)對Pango的介紹)。國際化的文本處理庫,說白了處理文字

                                 的。

第一步:glib-2.50.2安裝:

            1)zlib-devel,光盤鏡像中有 [root@CentOS Packages]# rpm -ivh zlib-devel-1.2.7-15.el7.x86_64.rpm

            2)libffi-devel,光盤鏡像中有 [root@CentOS Packages]# rpm -ivh libffi-devel-3.0.13-16.el7.x86_64.rpm

            3)libmount-devel,鏡像中也含有該包,不過有依賴關(guān)系,依賴關(guān)系并不多,可以嘗試一個(gè)個(gè)手動(dòng)裝上去,為了方便使用yum命

                  令 [root@CentOS Packages]# yum install libmount-devel

            4)pcre庫光盤中沒有需要到官網(wǎng)http://www.pcre.org/下載源代碼包。具體分4步進(jìn)行:

                 1、配置./configure --enable-utf-8 --enable-unicode-properties   其中給出的配置參數(shù)是防止在glib在make是出現(xiàn)The system-

                       supplied PCRE does not support unicode properties or UTF-8的錯(cuò)誤。

                 2、構(gòu)建make

                 3、安裝make install(氣質(zhì)就是把這些二進(jìn)制命令、頭文件、庫文件、幫助文檔拷貝到安裝目錄對應(yīng)的文件夾下) 注意使用root權(quán)

                       限。

                 4、配置PKG_CONFIG_PATH環(huán)境變量    安裝庫文件時(shí)都會(huì)在安裝目錄的lib/pkgconfig目錄下生成.pc文件,這個(gè).pc文件記錄著庫的

                       名稱、版本、安裝路徑等信息(有興趣的話可以找到文件打開看看)。配置PKG_CONFIG_PATH變量就是告訴pkg-config程序除了

                       在系統(tǒng)默認(rèn)路徑下搜索.pc文件,還要到用戶配置的目錄下搜索.pc文件。后面還會(huì)有一個(gè)LB_LIBRARY_PATH變量,用到時(shí)再作

                       說明。配置如下:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

            5)1至4步只是把要安裝glib的準(zhǔn)備工作做完,正式開始源碼安裝glib,也是分4步:

                 1、./configure  想要改變安裝路徑的話就加--prefix=參數(shù),本次安裝過程中不需要。

                 2、make

                 3、make install  在該文件夾下沒有吸入權(quán)限的話,使用root權(quán)限

                 4、配置環(huán)境變量  此時(shí)不僅要配PKG_CONFIG_PATH,還有LD_LIBRARY_PATH,該變量的作用是在編譯期間或者程序運(yùn)行期間所需

                       要的動(dòng)態(tài)庫路徑,配置如下:                

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATHexport LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

                       如果沒有配置LD_LIBRARY_PATH變量,發(fā)現(xiàn)在后續(xù)的gtk+安裝中會(huì)出現(xiàn)’pkg-config --modversion glib-2.0‘ returned 

                       2.50.2,but GLIB(2.42.2) was found!的問題,并提示移除老版本的glib。在網(wǎng)上也有人遇到這樣的問題并且給出了刪除

                      老版本glib的方法,but經(jīng)過本人認(rèn)真分析、仔細(xì)檢查在/usr下的bin、include、lib、share目錄并沒有任何glib命名或開

                      頭的任何文件或者文件夾,估計(jì)glib2.42.2根本沒有安裝(至少?zèng)]有裝在/usr這個(gè)目錄下)。后來也是在網(wǎng)上查到配置LD

                      _LIBRARY_PATH這個(gè)變量可以解決在后續(xù)安裝中出現(xiàn)的這個(gè)問題。

第二步:atk-2.22.0安裝,在前面的基礎(chǔ)上進(jìn)行配置、構(gòu)建、安裝,不會(huì)出現(xiàn)任何問題。

            1)./configure 不用給出配置參數(shù),除非你要改變安裝路徑

            2)make

            3)make install

第三步:安裝cairo開發(fā)包,關(guān)于cairo有2個(gè)開發(fā)包要裝。1、cairo-devel 2、cairo-gobject-devel

            1)cairo-devel包光盤中有,但是依賴關(guān)系真的很多,好吧!所以使用yum安裝

                  [root@CentOS Packages]# yum install cairo-devel

            2)cairo-gobject-devel包光盤中有,直接安裝

                  [root@CentOS Packages]# rpm -ivh cairo-gobject-devel-1.14.2-1.el7.x86_64.rpm

第四步:gdk-pixbuf-2.36.4安裝

             1)需要3個(gè)依賴包libtiff-devel,libjpeg-turbo-devel,libpng,libpng-devel。鏡像中都有,直接安裝

[root@CentOS Packages]# rpm -ivh libtiff-devel-4.0.3-14.el7.x86_64.rpm[root@CentOS Packages]# rpm -ivh libjpeg-turbo-devel-1.2.90-5.el7.x86_64.rpm[root@CentOS Packages]# rpm -e --nodeps libpng-2:1.5.13-7.el7_2.x86_64.rpm [root@CentOS Packages]# rpm -ivh libpng-1.5.13-5.el7.x86_64.rpm[root@CentOS Packages]# rpm -ivh libpng-devel-1.5.13-5.el7.x86_64.rpm

                   其中第3行卸載的較新版的libpng,第4行安裝了低版本的libpng,主要是為了配對對應(yīng)的-devel開發(fā)包;注意第3步的--nodepes

                   不顧及依賴關(guān)系的卸載包不要隨便使用,僅在這里本人試過幾次沒什么大問題,若是其他包的卸載就不一定了,我就遇到過,比

                   如終端打不開,--nodepes用的時(shí)候要慎重。

            2)固定的3步:配置、構(gòu)建、安裝;至于PKG_CONFIG_PATH、LD_LIBRARY_PATH環(huán)境變量前面已經(jīng)配過,在同一個(gè)終端下不用再

                  配。

                 1、./configure

                 2、make

                 3、make install

第五步:gobject-introspection-1.50安裝,鑒于CentOS7.0中g(shù)object-introspection-1.42包已經(jīng)被安裝,只要把光盤中對應(yīng)的-devel包裝

               上就行了,不安裝1.50版本的也行。gobject-introspection-devel有依賴關(guān)系,按順序安裝。

            1)依賴包順序是m4、perl-Data-Dumper、autoconf、perl-Thread-Queue、perl-Test-Harness、automake、libtool;

                  python-tempita、pyOpenSSL、python-paste、python-beaker、python-markupsafe、python-mako(這些包鏡像中都有)

[root@CentOS Packages]# rpm -ivh m4-1.4.16-10.el7.x86_64.rpm[root@CentOS Packages]# rpm -ivh  perl-Data-Dumper-2.145-3.el7.x86_64.rpm[root@CentOS Packages]# rpm -ivh  autoconf-2.69-11.el7.noarch.rpm[root@CentOS Packages]# rpm -ivh perl-Thread-Queue-3.02-2.el7.noarch.rpm[root@CentOS Packages]# rpm -ivh perl-Test-Harness-3.28-3.el7.noarch.rpm[root@CentOS Packages]# rpm -ivh automake-1.13.4-3.el7.noarch.rpm[root@CentOS Packages]# rpm -ivh libtool-2.4.2-20.el7.x86_64.rpm[root@CentOS Packages]# rpm -ivh python-tempita-0.5.1-6.el7.noarch.rpm[root@CentOS Packages]rpm -ivh pyOpenSSL-0.13.1-3.el7.x86_64.rpm[root@CentOS Packages]# rpm -ivh python-paste-1.7.5.1-9.20111221hg1498.el7.noarch.rpm[root@CentOS Packages]# rpm -ivh python-beaker-1.5.4-10.el7.noarch.rpm[root@CentOS Packages]# rpm -ivh python-markupsafe-0.11-10.el7.x86_64.rpm[root@CentOS Packages]# rpm -ivh python-mako-0.8.1-2.el7.noarch.rpm

          2)鏡像中有g(shù)object-introspection-devel-1.42.0-1.el7.x86_64.rpm,直接安裝

[root@CentOS Packages]# rpm -ivh gobject-introspection-devel-1.42.0-1.el7.x86_64.rpm

第六步:pango-1.40.3安裝  先說明鏡像中含有pango和pango-devel的1.40.3版本,但是gtk+3.22.7需要1.37.3以上的版本,只能源碼安裝了。

            1)安裝依賴包libicu-devel、harfbuzz-devel、libxft-deve

[root@CentOS Packages]# rpm -ivh libicu-devel-50.1.2-15.el7.x86_64.rpm[root@CentOS Packages]# rpm -ivh harfbuzz-devel-0.9.36-1.el7.x86_64.rpm[root@CentOS Packages]# rpm -ivh libXft-devel-2.3.2-2.el7.x86_64.rpm

          2)傳統(tǒng)的3步搞定,./configure、make、makeinstall,環(huán)境變量在前面已經(jīng)配過,同個(gè)終端下不用再配。

                配置完成后出現(xiàn)會(huì)下面內(nèi)容,輸出$?值為0即配置正確。

                

第七步:gtk+-3.22.7安裝,在配置過程中通過錯(cuò)誤提示安裝對應(yīng)的rpm包。

            1)配置錯(cuò)誤XIput2 extension not found    安裝libXi-devel包

                  配置錯(cuò)誤No package ’epoxy‘ found    使用yum安裝libepoxy-devel包(鏡像中沒有該包)

                  配置錯(cuò)誤No package ’atk-bridge-2.0‘ found  這個(gè)atk-bridge和第二步安裝的atk不是一回事,依次安裝dbus-devel,

                  at-spi2-core-devel。命令如下:

[root@CentOS Packages]# rpm -ivh libXi-devel-1.7.4-2.el7.x86_64.rpm[root@CentOS Packages]# yum install libepoxy-devel[root@CentOS Packages]# rpm -ivh dbus-devel-1.6.12-13.el7.x86_64.rpm[root@CentOS Packages]# rpm -ivh at-spi2-atk-devel-2.8.1-4.el7.x86_64.rpm

           2)經(jīng)典的3步:配置、構(gòu)建、安裝。其中為例在make時(shí)不出現(xiàn)Couldn't find include 'GdkPixbuf-2.0.gir'問題,使用./configure --

                 enable-introspection=no

           3)查看gtk+的版本:

                 

終于裝完了,大年初三那天晚上裝完后,內(nèi)心的小激動(dòng)一晚上沒有睡著覺微笑


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 进贤县| 藁城市| 康马县| 东方市| 香港 | 虞城县| 长白| 方城县| 阿合奇县| 璧山县| 望都县| 南昌县| 肥西县| 峨边| 陕西省| 柳江县| 石门县| 永新县| 宁陵县| 中江县| 林甸县| 南宁市| 双辽市| 桃江县| 泸水县| 大同市| 郯城县| 璧山县| 临武县| 呼伦贝尔市| 思茅市| 霸州市| 临汾市| 五台县| 新营市| 福建省| 阿荣旗| 内江市| 吉安市| 丁青县| 本溪|