2011年8月23日 星期二

替 windows 版本的 qt 找個 compiler

在 linux 上沒什選擇, 幾乎就是使用 gcc, windows qt 可以用好幾個版本的 c++ compiler, 不過我偏好使用 mingw (一樣是 gcc), 要自己搞定 mingw 似乎不大容易, 之前都是使用 qt 包好的版本, qt 會提供有支援 mingw 的安裝檔, 只要一安裝, 就會下載 mingw 並設定好 dos 視窗, 現在下載 qtsdk 也會有類似的效果。

20120606 補充: 目前需要下載 qt sdk (http://qt.nokia.com/downloads/sdk-windows-cpp), 安裝時自己選擇 mingw, 就會安裝好 mingw 了。不過要自己設定 mingw path, 也會安裝 qt creator。


通常我會再安裝 gnu win32 make, 其實 mingw32-make.exe 就是了, 但是我習慣 make 這指令, 所以另外安裝, 直接改名也許方便些, 不過我不想亂動原來的環境。

shadow build (不在 qt source tree 目錄編譯): 在 windows 上使用 shadow build 需要 perl, 所以要安裝 perl 並把 perl path 指定在 PATH 環境變數。shadow build 可以讓我方便編譯 dynamic 和 static 的版本, 所以我會使用 shadow build。

在搞定 c++ compiler 之後, 比較令人討厭的是動態聯結, 好不容易寫了個 hello qt, 由於會缺乏 qt lib 的 dll, 所以會有一堆的 qt lib dll 找不到的訊息, copy 這個執行檔案到 %QTDIR%\bin, 再一次高興的按下執行檔的名稱, 卻發現 mingwm10.dll 找不到的訊息, 從 mingw 安裝目錄找出來, copy %QTDIR%\bin, 再按下執行檔的名稱, 又來了, 換成 libgcc_s_dw2-1.dll 找不到, 再 copy 到 %QTDIR%\bin, 總算看到 hello qt 出來了。

很麻煩是吧!也許可以考慮使用靜態聯結的方式。請參考:
in windows using static link for QT application

依照我的經驗, webkit 需要使用 dynamic link, 不確定其他的 library 會不會也一定要用 dynamic link。

沒有留言:

張貼留言

使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。

我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。