1. 程式人生 > >vs2008靜態編譯Qt4.8.6

vs2008靜態編譯Qt4.8.6

1、編譯準備

原始碼版本

qt-opensource-windows-x86-vs2008-4.8.6.exe

下載地址:

http://mirrors.hust.edu.cn/qtproject/official_releases/qt/4.8/4.8.6/qt-opensource-windows-x86-vs2008-4.8.6.exe

vs外掛(建立工程嚮導)

qt-vs-addin-1.1.11-opensource.exe 

下載地址:

http://mirrors.hustunique.com/qt/official_releases/vsaddin/qt-vs-addin-1.1.11-opensource.exe

2、更改qmake.conf檔案

 
開啟檔案D:\Qt\4.8.6\mkspecs\win32-msvc2008\qmake.conf
 
更改MD為MT,更改MDd為MTd
 
即:
 
QMAKE_CFLAGS_RELEASE    = -O2 -MD
 
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
 
QMAKE_CFLAGS_DEBUG      = -Zi -MDd
 
改為:
 
QMAKE_CFLAGS_RELEASE    = -O2 -MT
 
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
 
QMAKE_CFLAGS_DEBUG      = -Zi –MTd

3.配置環境變數

變數名:PATH

變數值:D:\Qt\4.8.6

變數名:QTDIR

變數值:D:\Qt\4.8.6
 

變數名:QMAKESPEC

變數值:win32-msvc2008


4.設定配置

 
在開始選單開啟Visual Studio 2008 Command Prompt 
 
cd到原始碼所在資料夾(即D:\Qt\4.8.6
 
入以下命令然後回車。(更多關於configure命令可以,輸入configure –help檢視)
 
configure -platform win32-msvc2008 -debug-and-release -static -fast -qt-sql-odbc -qt-sql-sqlite

選o,回車(opensourse方式編譯)
選y,回車(接受linsence許可)

5.編譯連結

輸入nmake回車
然後開始編譯,要等很久喔。要2個小時以上。編譯後有40GB。注意磁碟空間。


6.清理中間檔案

在編譯過程中如果沒有產生錯誤,則可以把編譯時產生的中間檔案清理掉。
輸入nmake clean回車

7.靜態編譯 Demo

 
工程配置c/c++ ->code Generation:Runtime Library             
 
Debug    Multi-threaded Debug(/MTd)
 
Release    Multi-threaded Debug(/MT)

 
這時編譯還會有連線錯誤,暈。
 
連線錯誤:
 
error LNK2001: unresolved external symbol "public: static struct QMetaObject const QDialog::staticMetaObject" ([email protected]@@[email protected]@B)
 
 
工程配置Linker->Input:Additional Dependencies
 
qtmain.lib
 
QtCore4.lib
 
QtGui4.lib
 
改成
 
kernel32.lib user32.lib shell32.lib uuid.lib ole32.lib advapi32.lib ws2_32.lib gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib winspool.lib qtmaind.lib QtCored.lib QtGuid.lib
 
這樣就OK啦。
 
 一個簡單的Hello world程式有5.82M。框架確實佔了很多。
[喝小酒的網摘]http://blog.const.net.cn/a/12332.htm