VS2013編譯Qt5.4靜態
設定了一天,這靜態編譯也總算是虐出來了。。。Qt 的靜態編譯簡直不要太麻煩啊。。。
感謝這位大神提供的方法
工具下載:
一、環境配置
我目前用的系統是Windows 7 64bit,請注意安裝好以下軟體,以及配置好環境變數:
Visual Studio 2013
python
perl
安裝好以上軟體 請用cmd測試下 python和perl,如果提示不是內部或外部命令,也不是可執行的程式或批處理檔案之類的那說明沒配置好環境變數,請在你的環境變數path中新增 F:\Qt\5.4\msvc2013_64\bin;F:\Python33;F:\MinGW\mingw64\bin
(根據自己的安裝路徑進行更改)
配置環境變數:計算機->屬性->高階系統設定->環境變數->系統變數->Path
1.MinGw:
Path後加
;F:\MinGW\mingw64\bin
2. Python:
Path 後加:
;F:\Python33
;F:\Qt\5.4\msvc2013_64\bin
3. Perl:
Path 後加:
F:\Perl\bin
cmd測試:
gcc –v
python
perl -v
二、準備工作
這個很簡單 就和安裝一般的程式一樣一步步安裝即可,那麼下面說就是編譯一個 靜態庫存放到 安裝好的Qt中以便使用
下載
將其解壓 到F:\qt-everywhere-opensource-src-5.4.0-beta(
下面的修改很重要
進入Qt的mkspecs\win32-msvc2013資料夾修改qmake.conf
F:\Qt\5.4\msvc2013_64\mkspecs\win32-msvc2013\qmake.conf
1 2 3 4 5 6 7 8 |
QMAKE_CFLAGS_RELEASE = -O2 -MD -Zc:strictStrings QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi -Zc:strictStrings QMAKE_CFLAGS_DEBUG = -Zi -MDd //將以上改為 QMAKE_CFLAGS_RELEASE = -O2 -MT -Zc:strictStrings QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi -Zc:strictStrings QMAKE_CFLAGS_DEBUG = -Zi -MTd //即將MD(動態)改為MT(靜態) |
準備完成下面即開始編譯
三、編譯靜態庫並安裝
下面開啟VS2013的開發人員命令提示工具,從開始選單中自己找。或者看看下面路徑裡有沒
F:\VS2013\Common7\Tools\Shortcuts\VS2013開發人員命令提示
VS2013下cmd命令:(後面具體說明)
cd"F:\qt-everywhere-opensource-src-5.4.0-beta"
echo foo >qtbase\.gitignore
configure-confirm-license -opensource -platform win32-msvc2013 -debug-and-release-static -prefix "F:\Qt\5.4\static-vs2013" -qt-sql-sqlite -qt-sql-odbc-plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengldesktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples-skip qtwebkit
nmake
nmake install
下具體說明:
轉至qt-everywhere-opensource-src-5.4.0-beta解壓的目錄
F:\qt-everywhere-opensource-src-5.4.0-beta
執行configure 注意檢查:
1 |
configure -confirm-license -opensource -platform win32-msvc2013 -debug-and-release -static -prefix " F:\Qt\5.4\static-vs2013" -qt-sql-sqlite -qt-sql-odbc -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebkit |
其中 “F:\Qt\5.4\static-vs2013″ 是最後靜態庫安裝的位置我安裝的就是最開始安裝QT的地方 嘛 這個可以隨便放到哪
-platform win32-msvc2013 為你選取的編譯器平臺
這一步如果提示 找不到configure.exe命令是因為下載的zip問題 執行下面的方法即可
1.新建一個.gitignore檔案
(如何建立一個沒有名字的檔案??
你建立一個檔案,隨便什麼都可以,改名如 1.txt留著備用。裡面輸入foo 再建立一個文字檔案如do.txt,輸入如下內容:
ren 1.txt .gitignore 儲存後將 do.txt改為 do.bat
然後滑鼠雙擊 do.bat
)
2.內容填寫 foo儲存即可
3.儲存到F:\qt-everywhere-opensource-src-5.4.0-beta\qtbase中
4.CMD在F:\qt-everywhere-opensource-src-5.4.0-beta目錄執行 echo foo > qtbase\.gitignore
再執行之前的configure程式碼即可
執行nmake:
輸入nmake 回車
這一步超長,,,大概1個小時半左右,可以最小化該幹嘛幹嘛,我用的SSD 機械硬碟可能會更久,猜測。。
執行nmake install
nmake結束以後執行nmake install程式會把編譯好的靜態庫安裝到之前設定的目錄 靜態庫即可使用了。
三、使用靜態庫
開啟Qt Creator,工具->選項->構建和執行->QtVersions->新增
把剛才安裝的靜態庫加進去 選瀏覽 把 F:\Qt\5.4\static-vs2013\bin\qmake.exe選進去即可
如果提示qmlscene未安裝,只需把原來的F:\Qt\5.4\msvc2013_64\bin\qmlscene.exe拷到F:\Qt\5.4\static-vs2013\bin\qmlscene.exe下就行了。
選擇 構建套件(Kit)選項卡 新增一個套件看下面設定 自行更改
經過上面操作 已經完成所有的編譯安裝,新建個專案選擇 靜態庫的kit試試吧,
注:要把之前改的MT 換回 MD
F:\Qt\5.4\msvc2013_64\mkspecs\win32-msvc2013\qmake.conf