獲取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文件鏈接進來。