2009-04-29

Qt4的安裝與編譯

在下載及安裝之前,先試著了解自己的需求。是要商業版呢?或是OpenSource版呢? 對於一般人來說下載OpenSource版應該就可以了(此外,因為Qt目前是採取LGPL的授權,根據上次研討會Qt部門頭頭的說法,只要你最後的執行檔是動態連結Qt的程式庫,就可以開發付費的軟體)。 接著你還要決定你是要下載完整的SDK(以執行檔型式)或是只要必要的程式(以原始碼形式)就好。對於喜歡使用IDE來開發軟體的人來說,倒是可以下載完整的SDK,直接試試看裡面的Qt Creator這個IDE(當然,你也可以下載原始碼編譯出來Qt Creator))。在台灣Nokia辦的研討會中,這個IDE倒是受到相當多的注目。但是,個人淺見是沒有一定要用他的必要。一般的編輯軟體就很足夠了。而以我現在用的Ubuntu 9.04系統,Qt 4.5.0已經包含在套件庫裡,不必自己手動編譯。但是,若是想要試試看新的4.5.1的版本,就可以在這裡下載原始碼來編譯。 將壓縮檔解開後,進入目錄,執行 [josh@halo:~/qt-x11-opensource-src-4.5.0 > ./configure --help ,來看看編譯時可以用的選項。我個人大約會注意的有這幾個,
  1. -prefix:在你想將Qt安裝在特定的目錄時,可以用這個選項。通常,在一般的開發環境中,所有的開發工具會安裝在同一父目錄下,再由Make rules指定每一個Release應該使用的工具或函式庫版本。這樣的安排,主要是要避免不同開發者之間鍊結錯誤函式庫的機會。這時候,管理者就可以使用這個選項將Qt安裝在規定的目錄下。
  2. -release|-debug|-debug-and-release:是否產生偵錯版本。
  3. -shared|-static:這個選項很有意思。之前提過在LGPL下,Qt的函式庫必須被動態鍊結,也就是你的程式必須動態開啟Qt的.so函式庫。而-shared這個選項,就是編譯出一套Qt的.so函式庫。相反地,當你希望Qt的函式庫是整個包含在你的執行檔時,就可以用-static來編譯出Qt的Archived函式庫(.a),之後再連結進執行檔。這個情形下,使用ldd,就不會列出Qt的任何.so檔。
  4. -make或-nomake:通常,你可以經由這個選項指定要編譯的模組。我通常覺得不需要編譯examples和demos兩項,所以我可以把他們加在-nomake裡。
決定好參數之後,就可以開始編繹了, [josh@halo:/tmp/qt-x11-opensource-src-4.5.0 > ./configure -prefix /home/josh/qt/4.5.0 -shared -debug-and-release -nomake "examples demos translation" [josh@halo:/tmp/qt-x11-opensource-src-4.5.0 > gmake; gmake install 以我的機器,大概15-30分鐘,編譯就完成了。接著,將Qt的環境加入系統中(以bash為例), export QTDIR=/home/josh/qt/4.5.0 export PATH= "$QTDIR/bin:$PATH" export LD_LIBRARY_PATH= $QTDIR/lib:$LD_LIBRARY_PATH 現在,就可以試著執行Qt內付的工具,如assistant或是qtconfig等。

沒有留言:

張貼留言