vs2008靜態編譯Qt4.8.6
阿新 • • 發佈:2019-01-04
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