VS2013編譯Qt5.6.0靜態庫


獲取qt5.6.0源碼包

直接去www.qt.io下載就好了,這里就不詳細說了。

這里是我已經編譯好的** 鏈接:http://pan.baidu.com/s/1pLb6wVT 密碼: ak7y **

configure配置

1、進入源碼目錄下的qtbase\mkspecs\win32-msvc2013目錄,打開文件qmake.conf文件。添加

QMAKE_CFLAGS_RELEASE    = -O2 -MT -Zc:strictStrings
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi -Zc:strictStrings
QMAKE_CFLAGS_DEBUG      = -Zi -MTd

上面其實不做也可以,我就沒有做。

2、進入解壓后的源碼目錄,打開命令行界面,執行

configure -prefix 安裝目錄 -platform win32-msvc2013 -opensource -release -static -qt-sql-sqlite -qt-sql-mysql -qt-zlib -qt-libjpeg -qt-libpng -skip qtquickcontrols -skip qtquickcontrols2 -skip qtsensors -skip qtdoc -confirm-license -c++std c++11

詳細的配置選項可以看這里http://www.cnblogs.com/oloroso/p/5407779.html

2016年11月24日 11:42:31
做個備注,這個地址http://www.npcglib.org/~stathis/blog/precompiled-qt4-qt5/有更多下載。

編譯與安裝

執行configure成功后,會提示運行nmake
打開VS2013安裝目錄下的\Common7\Tools\Shortcuts目錄,雙擊執行VS2013 x64 本機工具命令提示
切換工作目錄到Qt5.6.0的源碼目錄,執行nmake

問題與解決辦法

下面問題出現的時候,由於我沒有記錄下報錯信息,所以只能靠自己的記憶來描述了。

問題1:找不到編譯生成的.obj
這是在編譯qtimageformats模塊的時候出現的問題。由於編譯時指定的生成路徑太長,文件無法寫入導致的。打開qt5.6.0源碼目錄下的qtimageformats\src\imageformats\Makefile.release文件,將生成路徑中的.obj\release\qt...省略很多級目錄...改為一個比較短的路徑。

問題2:編譯adueditor時,鏈接出現的重定義問題
打開文件qtserialbus\examples\serialbus\modbus\adueditor\mainwindow.cpp,將以下幾行注釋掉。

QT_BEGIN_NAMESPACE
Q_LOGGING_CATEGORY(QT_MODBUS, "qt.modbus")
Q_LOGGING_CATEGORY(QT_MODBUS_LOW, "qt.modbus.lowlevel")
QT_END_NAMESPACE

問題3:error LNK2019: 無法解析的外部符號 "struct QStaticPlugin const __cdecl qt_static_plugin_AssimpParserPlugin(void)"
這個問題記錄下來了,是因為這里編譯的是靜態庫,這里加載插件的時候,沒有鏈接它。
打開源碼目錄下的qt3d\examples\qt3d\qt3d.pro文件。添加qt3d\plugins\sceneparsers目錄下的兩個.lib文件。添加后還要其他的未找到定義問題,再找相關的lib文件鏈接進來。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM