我的QT4.5编译流水帐(转帖)
生活随笔
收集整理的這篇文章主要介紹了
我的QT4.5编译流水帐(转帖)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原帖:http://www.cppprog.com/2009/0728/143.html
我自己編譯QT4.5的過程,記錄下來以防以后忘記。也可以讓想用QT的朋友們在如何編譯上節省點時間。
從http://www.qtcentre.org/下 載QT源代碼,注意是源代碼。我下載到的是QT4.5.1版,文件名為qt-win-opensource-src-4.5.1.zip 解壓,注意不要解壓路徑不要含有空格或中文,我把它解壓到了d:\qt451里 準備一個存放編譯后“成品”的文件夾,我準備放在d:\qt451\static里 把QT源碼里的“mkspecs” 文件夾復制到準備存放“成品”的地方,比如我的就是把d:\qt451\qt-win-opensource-src-4.5.1\mkspecs復 制到d:\qt451\static里 用記事本或其它編輯器打開D:\qt451\static\mkspecs\win32-msvc2005\qmake.conf(注 意VC版本號),按需要修改: 進入“Visual Studio 2005 命令提示”,其它版本的VC也一樣。 進入解壓的地方,比如我的: cd d:\qt451\qt-win-opensource-src-4.5.1。(小提示,在控制臺里輸入前幾個字符再按tab 鍵,可以自動填充路徑、文件名,MS在向Linux Shell學習?) 鍵入命令configure -prefix d:\qt451\static -debug-and-release -static -opensource -no-qt3support -no-dbus -no-phonon -no-webkit -qt-gif -qt-zlib -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg configure可能要花幾分鐘時間,成功后再輸入nmake開 始編譯,編譯會花去大概1小時(和配置有關啦,我是以我的老爺機為參考的)。 輸入nmake install 如果沒出錯的話,“QT成品”就已經在我們之前建立的成品路徑里了(我的是d:\qt451\static) VC只需要成品路徑里的東東就夠了,如果你想,可以刪除解壓的那些源代碼省點空間。 打開VC 新建項目 設置項目屬性 配置屬性->C/C++->常規->附加包含目錄:D:\qt451\ static\include 配置屬性->C/C++->代碼生成->運行時庫:多線程調試(/MTd),這 條依據你當時修改qmake.conf的情況決定 配置屬性->鏈接器->常規->附加庫目錄:d:\qt451\static\ lib 配置屬性->鏈接器->輸入->附加依賴項:qtmaind.lib QtCored4.lib QtGuid4.lib,如果要編譯Release,把后面的d去掉。 #include?<Qt/QtGui> int?APIENTRY?_tWinMain(HINSTANCE?hInstance, ?????????????????????HINSTANCE?hPrevInstance, ?????????????????????LPTSTR????lpCmdLine, ?????????????????????int???????nCmdShow) { ?QApplication?app(__argc,?__argv); ?QLabel?*label?=?new?QLabel("Hello?Qt!"); ?label->show(); ?return?app.exec(); }
我自己編譯QT4.5的過程,記錄下來以防以后忘記。也可以讓想用QT的朋友們在如何編譯上節省點時間。
- 如果不希望編譯出來的DLL或EXE鏈接到VC運行時庫,就把-MD改成-MT,把-MDd改成-MTd(查找替換)。
- [可選]如 果做了上一步,那么就不需要嵌入manifest了,去掉CONFIG+= 后面的embed_manifest_dll embed_manifest_exe。
- VC默認是“將wchar_t 視為內置類型”的,所以建議去掉-Zc:wchar_t-, 否則以后用到一些與wchar_t有關的函數(如fromWCharArray)時,就要在項目屬性里設置“將wchar_t視為內置類型”為No了)。
- 輸入configure -help可以顯示所有選項的幫助信息,上面是我用的選項,解釋一下:
- -prefix 路徑名 編譯后的安裝路徑
- -debug-and-release 編譯Debug和Release版本
- -static 編譯靜態庫,如果不指定,默認為編譯成DLL
- -opensource 使用LGPL協議,如果不指定也行,configure運行后會問的
- -no-qt3support 不用編譯與QT3兼容的一些廢棄函數,如果你比較熟悉QT3,還是去掉它吧
- -no-dbus 不用鏈接到DBus庫,這個庫偶好像在Linux里看到過,Windows里不用。
- -no-phonon 同上,不要鏈接
- -no-webkit 是否編譯Web相關的一些QT子庫,加上這個可以省不少編譯時間,就看你是否準備用這些庫了。
- -qt-gif 使用QT自帶的gif庫
- -qt-zlib 使用QT自帶的zlib庫
- -qt-libpng 使用QT自帶的libpng庫
- -qt-libmng 使用QT自帶的libmng庫
- -qt-libtiff 使用QT自帶的libtiff庫
- -qt-libjpeg 使用QT自帶的libjpeg庫
測試是否成功
代碼:
注:如果編譯的是動態庫,那么要把QT成品里的bin目錄加入path系統變量,或者把這里用到的DLL復制到與你的程序相同的目錄里,一般是 QtCore4.dll和QtGui4.dll(Debug版為QtCored4.dll和QtGuid4.dll),依你使用的子庫而定
轉載于:https://www.cnblogs.com/huangliujing/archive/2009/08/08/1541987.html
總結
以上是生活随笔為你收集整理的我的QT4.5编译流水帐(转帖)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国移动将向广大开发者开放了SDK/AP
- 下一篇: 企业内容管理之联想