青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

sunrise

每天不斷學習,才能不斷提升自己。

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  64 隨筆 :: 0 文章 :: 92 評論 :: 0 Trackbacks
轉自:http://www.linuxidc.com/Linux/2011-07/39217.htm

     在linux下安裝軟件,難免會碰到需要源碼安裝的,而就是這簡簡單單的./configure、make、sudo make install三步,卻讓不少人頭疼不已,這里以安裝X11為例具體介紹下我在安裝時的一點小經驗,以便共同學習,共同進步!

首先,我們要做些準備工作,源碼安裝少不了這幾個工具pkg-config、libtool、autoconf和automake(當然,還有更基礎的,像zlib、m4等,這里就略過啦),其中,pkg-config是相對比較重要的,它就是向configure程序提供系統信息的程序,如軟件的版本、庫的版本以及庫的路徑等信息,這些只是在編譯期間使用。你可以打開/usr/lib/pkgconfig下任意一個.pc文件,就會發現類似下面的信息(X11的pc文件):

prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
xthreadlib=-lpthread
Name: X11
Description: X Library
Version: 1.3.3
Requires: xproto kbproto
Requires.private: xcb >= 1.1.92
Cflags: -I${includedir}
Libs: -L${libdir} -lX11
Libs.private: -lpthread

configure就是靠著這些信息來判斷軟件版本是否符合要求的。接著來看看pkg-config是怎樣工作的,缺省情況下,pkg-config首先在usr/lib/pkgconfig/中查找相關包(譬如x11)對應的相應的文件(x11.pc),若沒有找到,它也會到PKG_CONFIG_PATH這個環境變量所指定的路徑下去找,若是還沒有找到,它就會報錯。所以這里就可以得到一些解決configure時提示**庫未找到的辦法了,先用命令"ldconfig -p | grep 庫名"來分析該庫是否安裝及其路徑,若返回空,則說明該庫確實未安裝,否則,可以根據該命令的返回結果找到庫的安裝地點,然后設置其環境變量,命令如下:

"export PKG_CONFIG_PATH=軟件位置/lib/pkgconfig:$PKG_CONFIG_PATH",這里有個常識,軟件安裝后,.pc文件都是在安裝目錄下的lib/pkgconf中的。這樣只會在當前命令窗口有效,當然,你也可以修改home文件夾下的.bashrc文件(帶.的文件為隱藏文件,可以用命令vi .bashrc編輯),在文件末尾加上上面那句命令,重新登錄即可。其他的幾個在linux下也是不可或缺的,libtool為管理library時使用,沒裝的話錯誤提示如下:possibly undefined macro:AC_PROG_LIBTOOL。而autoconf和automake可以用于在某些沒有configure的文件的源碼包安裝時使用(pixman就是個典型的例子,安裝了二者后直接./autogen.sh就可以安裝了)。

準備工作做好后,就可以安裝了,具體全部命令如下:

tar vxf libX11-6.2.1.tar.gz

cd libX11-6.2.1

mkdir X11-build

cd X11-build

../configure –prefix=/usr/local/X11R6

make

echo $?

sudo make install

這里有一些好的安裝習慣可以積累一下:1、建立一個臨時編譯目錄,本例中為X11-build,這樣可以再安裝完成后刪除該目錄,進而可以節省空間,而且保持了源碼目錄的整潔;2、安裝到指定目錄,本例中為/usr/local/X11R6,最好把幾個相關的安裝在同一文件夾下,如這里的X11R6文件夾,這樣便于管理,否則全部默認安裝在/usr/local下,很雜亂;3、編譯完成后做檢查,本例為echo $?,表示檢查上一條命令的退出狀態,程序正常退出返回0,錯誤退出返回非0,也可以使用make check,主要為了防止make失敗后直接install,進而出現了一些莫名其妙的錯誤。這里還介紹一種更方便快捷的安裝方法,用&&將安裝命令連接起來,如../configure –prefix=**&&make&&sudo make install,這樣,只有在前面的命令執行正確的情況下,后面的任務才會執行,多方便!

除此之外,安裝之前可以閱讀下源碼包中的readme和install等文檔,往往有所需軟件及其下載地址,還包括一些安裝技巧和配置選項。另外,在configure前,先輸入configure –help,可以查看有哪些選項可以添加。還有幾個關系安裝成功的東西就是ldconfig了,在安裝時如果提示找不到某個庫或者在編譯時提示找不到**.so文件,就要用到它了,最簡單的解決辦法就是sudo gedit /etc/ld.so.conf,在文件中加入**.so文件所在路徑,再運行一下ldconfig就可以了,但是我對這個東西有陰影,不知道是因為用了虛擬機還是其他的原因,有7、8次我在運行完ldconfig后,Ubuntu就沒辦法打開任何窗口了,直接關機重啟就更是進不去系統了,崩潰之,不知道有沒有高手有解決辦法。在這里提供一種代替ldconfig的辦法,就是export LD_LIBRARY_PATH=*.so文件地址:$LD_LIBRARY_PATH,用它我就舒心多了,也就是麻煩點,哥忍了,總比系統崩潰強多了吧,呵呵!其實,在configure時碰到問題,你應該慶幸,因為你可以根據它很明顯的提示找到缺失的東西裝上,在配置下pkgconfig和ldconfig基本上就可以搞定了,但是make的時候就沒那么簡單了。

編譯時提示最多的就是**東西未找到了,要么是庫文件,要么是頭文件,庫文件用上面的ldconfig基本上就可以搞定,頭文件的話需要配置包含的路徑,和庫的類似,命令如下:

export LD_INCLUDE_PATH=/usr/local/include:$LD_INCLUDE_PATH

在這個時候最重要的就是淡定了,循著丫的error往上找,像"No such file or directory"這樣的錯誤提示肯定就在附近,找到了,include之就可以咯!

posted on 2012-06-05 09:36 SunRise_at 閱讀(1664) 評論(0)  編輯 收藏 引用 所屬分類: linux開發
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲第一网站免费视频| 韩国视频理论视频久久| 欧美在线一二三四区| 亚洲高清123| 国产欧美一区二区精品秋霞影院 | 亚洲砖区区免费| 亚洲一区不卡| 亚洲欧美日韩国产一区| 欧美一区国产一区| 久久婷婷人人澡人人喊人人爽| 欧美一区综合| 免费人成精品欧美精品| 欧美另类在线观看| 国产精品久久久久影院亚瑟| 国产精品一区二区三区免费观看| 国产一区日韩二区欧美三区| 在线观看一区二区精品视频| 99视频在线观看一区三区| 亚洲网在线观看| 久久蜜桃资源一区二区老牛| 欧美国产第二页| 亚洲一品av免费观看| 久久青草久久| 欧美特黄一级| 在线欧美亚洲| 亚洲女性喷水在线观看一区| 久久青青草原一区二区| 亚洲精品一区二区三| 亚洲女同性videos| 欧美成人久久| 韩国欧美国产1区| 亚洲视频免费在线| 欧美+亚洲+精品+三区| 在线一区二区视频| 欧美mv日韩mv亚洲| 国内精品久久久| 亚洲影音一区| 亚洲国产成人在线| 亚洲综合第一| 欧美激情视频网站| 国产日韩在线一区| 一区二区欧美日韩| 免费成人小视频| 亚洲欧美一区二区激情| 欧美日韩精品欧美日韩精品| 亚洲电影免费观看高清完整版在线观看| 亚洲伊人一本大道中文字幕| 亚洲国产精品成人综合色在线婷婷| 亚洲一区在线看| 欧美日本韩国一区二区三区| 亚洲国产欧美在线| 免费不卡在线观看av| 亚洲欧美激情四射在线日| 欧美日韩成人综合天天影院| 亚洲激情第一区| 美腿丝袜亚洲色图| 欧美一级淫片播放口| 国产精品久久久久久久午夜| 亚洲视频1区2区| 亚洲免费一级电影| 亚洲欧洲精品一区二区| 久久久久久久高潮| 国际精品欧美精品| 久久久久高清| 久久精品成人一区二区三区蜜臀| 国产欧美精品va在线观看| 亚洲欧美国产精品va在线观看| 99re6这里只有精品| 欧美日韩综合久久| 亚洲欧美国产精品桃花| 亚洲欧美日韩国产成人精品影院| 欧美性开放视频| 亚洲综合色丁香婷婷六月图片| 一本色道久久综合| 国产精品国产三级国产aⅴ9色| 亚洲午夜久久久久久久久电影院 | 欧美高清在线一区二区| 亚洲国产日韩综合一区| 亚洲丶国产丶欧美一区二区三区| 久久午夜色播影院免费高清| 亚洲国产精品一区制服丝袜| 欧美 日韩 国产精品免费观看| 美女黄毛**国产精品啪啪| 亚洲激情另类| 一本色道**综合亚洲精品蜜桃冫| 国产精品草莓在线免费观看| 欧美一区影院| 久久久精品日韩| 亚洲九九爱视频| 亚洲午夜免费视频| 国产一区日韩二区欧美三区| 欧美顶级艳妇交换群宴| 欧美色精品在线视频| 欧美一区二区视频97| 欧美中文在线视频| 亚洲人成在线观看| 亚洲一区国产视频| 亚洲国产乱码最新视频| 一区二区免费在线播放| 国产一二精品视频| 免费试看一区| 欧美成人激情视频| 午夜亚洲福利| 久久躁狠狠躁夜夜爽| 一区二区久久久久| 久久久精品国产免大香伊| 亚洲一级电影| 噜噜噜噜噜久久久久久91| 亚洲欧美三级伦理| 欧美黄色免费网站| 久久免费高清视频| 欧美日韩国产一区二区| 六月婷婷久久| 国产精品亚洲精品| 亚洲精品影院在线观看| 国内精品视频一区| 亚洲校园激情| 日韩视频免费观看高清完整版| 亚洲欧美激情一区二区| 免费精品视频| 久久久视频精品| 国产精品视频成人| 亚洲精品国产精品久久清纯直播| 黄色成人av| 午夜精品福利一区二区三区av| aⅴ色国产欧美| 久久久久久一区二区| 久久精品国产精品亚洲| 国产精品毛片| 亚洲一二三级电影| 亚洲专区一二三| 欧美三级在线播放| 99精品国产热久久91蜜凸| 亚洲精品精选| 免费久久精品视频| 欧美va亚洲va国产综合| 在线观看亚洲视频啊啊啊啊| 欧美在线一二三区| 久久久精品动漫| 国产一区二区三区网站| 午夜欧美不卡精品aaaaa| 午夜精品免费视频| 国产精品一卡| 亚洲综合社区| 欧美一区二区成人6969| 国产欧美精品| 欧美在线视频日韩| 久久这里只有| 91久久极品少妇xxxxⅹ软件| 嫩草国产精品入口| 亚洲精品极品| 午夜亚洲福利在线老司机| 国产一区二区久久久| 欧美在线影院在线视频| 免费不卡亚洲欧美| 日韩一级在线| 欧美午夜电影在线观看| 亚洲一卡二卡三卡四卡五卡| 久久99伊人| 在线看片一区| 欧美国产欧美亚洲国产日韩mv天天看完整 | 久久综合九色综合欧美狠狠| 好吊色欧美一区二区三区视频| 久久国产精彩视频| 亚洲高清在线播放| 亚洲视频一二| 国产亚洲观看| 欧美成人免费在线| 亚洲天堂男人| 免费在线看一区| 在线亚洲+欧美+日本专区| 国产精品一区在线观看你懂的| 久久爱另类一区二区小说| 亚洲成色777777女色窝| 六十路精品视频| 亚洲精品国产欧美| 久久av在线看| 欧美视频免费在线| 欧美一级理论性理论a| 欧美电影免费观看高清完整版| 中文精品一区二区三区 | 国产精品美女xx| 久久久欧美精品sm网站| 99av国产精品欲麻豆| 久久亚洲高清| 亚洲一区综合| 亚洲黄色在线观看| 国产日韩在线一区| 欧美日韩免费一区| 欧美高清视频一二三区| 亚洲午夜精品在线| 亚洲全部视频| 国内精品久久久久久 | 91久久国产综合久久| 国产精品一区视频网站| 欧美日本视频在线| 久久综合中文色婷婷| 午夜国产精品视频| 日韩一区二区精品葵司在线| 亚洲国产第一页|