VS2013編譯Qt5 6 0靜態庫

2021-09-08 18:28:16 字數 1787 閱讀 4462

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
詳細的配置選項可以看這裡

執行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檔案鏈結進來。

VS2013編譯Qt5 6 0靜態庫

1 進入原始碼目錄下的qtbase mkspecs win32 msvc2013目錄,開啟檔案qmake.conf檔案。新增 qmake cflags release o2 mt zc strictstrings qmake cflags release with debuginfo o2 mt z...

VS2013編譯Qt5 4靜態庫

原帖位址 1 環境配置 安裝python 安裝perl 修改檔案路徑 qt qtbase mkspecs win32 msvc2013 qmake.conf 原始檔案是注釋掉的三行,分別修改為後面三行 qmake cflags release o2 md zc strictstrings qmake...

vs2013編譯ffmpeg總結

ffmpeg官網上有vs編譯ffmeg的教程,主要的流程就是根據官網上給出的教程一步步編譯,但是在編譯過程中遇到了很多的坑,所以把自己遇到的一些坑寫出來讓其他的人少走彎路。1.搭建mingw 2.yasm安裝.這裡是乙個大坑,在yasm官網上有乙個vs版本的yasm,不要用那個,就直接普通的yasm...