關於自行編譯軟體兩三事:ericsk 的 Ubuntu Linux 筆記:Xuite日誌
  • 最新文章
  • 文章分類
  • 搜尋文章
  • 關鍵字
  • 最新回應
  • Re:視窗版本的FTP client軟體,by(alec)於2008-05-16
    Re:從 Windows 下安裝 Ubuntu,by()於2008-01-26
    Re:什麼是 Ubuntu Linux?,by(大頭)於2007-11-15
    Re:中文輸入法 - 使用 SCIM,by(jacky4u)於2007-11-07
    Re:用 apt-get 及 Synaptic 後應有的習慣,by(wsc)於2007-10-29
    Re:中文輸入法 - 使用 SCIM,by(cchien)於2007-10-26
    Re:用 apt-get 及 Synaptic 後應有的習慣,by(happylin)於2007-09-03
    Re:LAMP in Ubuntu,by(祥仔)於2007-08-25
    Re:Flash 9 Plugin for Firefox,by(walker)於2007-07-27
    Re:視窗版本的FTP client軟體,by(fishball)於2007-07-25
  • 參觀人氣統計
  • 日誌使用資源






  • 如何使用RSS
    Powered by Xuite
  • 艾瑞克
  • 2006-05-01 23:12 關於自行編譯軟體兩三事
  • ?
  • 閒聊
  • 好文轉寄
  • 平均分數:0 顆星    投票人數:0
    我要評分:
    標籤 : 


    由於 gaim 這個通訊軟體(可參閱本blog的「即時傳訊軟體」)官方已經推出 2.0beta,不過 Ubuntu 的官方套件庫中仍未更新至 2.0beta 版,所以我是到 Sourceforge 上抓最新的 gaim 原始碼回來編譯,也用這個例子介紹一下自己要編譯軟體的注意事項。

    自己要編譯軟體的話,依然軟體的不同,你可能需要安裝各種編譯工具,Ubuntu 的套件庫剛好有一個套件叫 build-essential ,它可以幫你裝上一些基本且常用的工具。

    sudo apt-get install build-essential

    而最常見的原始碼都是用 C/C++ 語言寫成的,常用的 gcc/g++ 版本有幾種:2.95、3.3、3.4、4.0.x 這些,目前 Ubuntu 套件中的 gcc/g++ 是 4.0.x 這個版本的,所以如果你的軟體包在設定時要求你裝上某個版本的 gcc/g++,那你就為它安裝一下吧 :-)

    sudo apt-get install gcc-3.4 #以 3.4版為例

    而從 Sourceforge 網站目前提供兩種原始碼版本控制系統,一個是 cvs ,另一個則是 subversion,視你的需要你也必須安裝這兩個工具,像 gaim 這個專案目前是使用 subversion 作版本控制,而依照專案網頁的說明,要將 gaim 的原始碼抓下來則要使用:

    svn co https://svn.sourceforge.net/svnroot/gaim/trunk gaim

    這樣的指令,那原始碼就會放在你的 gaim 目錄下。

    接下來就是準備要編譯軟體了,通常最好先閱讀目錄下的 README 或 INSTALL 等相關文件,看看開發者有沒有什麼特別的建議,若無意外,大部份的專案第一步就是要設定或是產生設定檔,也就是有可能:

    1. 使用 ./autogen.sh 來產生設定檔
    2. 使用 ./configure 來設定 Makefile
    通常下完 ./autogen.sh 也會產生 configure 檔,如果你需要額外的編譯參數,那就使用 ./configure --help 來看說明。

    接下來就是下

    make; sudo make checkinstall

    來編譯軟體並且安裝它。

    這樣會包裝成 *.deb 的套件,那就可以使用 dpkg 來管理套件了(用 dpkg -i  來安裝,用 dpkg -r 來移除)

    在設定或編譯的過程中,可能會缺少某個函式庫或是函式庫的標頭檔,比方說如果要讓 gaim 支援 MSN Messenger 的 protocol ,那必須要讓 gaim 支援 TLS加密,但是自行編譯時卻會發現缺少這個標頭檔,那麼你可能要先安裝個 libgnutls-dev 才能編譯順暢。

    因為是用版本控制的緣故,它日如果你想看看程式碼有沒有更新,可以下

    svn up gaim/

    來跟最新的程式碼同步。


    艾瑞克 / Xuite日誌 / 回應(3) / 引用(0) / 好文轉寄
  • 回應