天天看點

qtxlsx編譯報錯_QT5.12版本下編譯和搭建QTXlsx庫讀取Excel表格第二講

QT5.12下搭建QTxlsx庫編譯錯誤以及解決方法,完美運作成功

上次我将遇到的問題整理在第一個部落格中,見我的之前記錄的文章,QT下編譯Qtxlsx庫快速讀取excel表格第一講,這裡我沒有解決遇到的問題,今天我将遇到的問題已經解決,将解決過程記錄下來,希望大家能夠互相學習哦。

執行qmake編譯錯誤:Unknown module(s) in QT: xlsx

詳細的編譯錯誤記錄如下:

08:27:46: 為項目ExcelDemo執行步驟 ……

08:27:46: 正在啟動 "E:\QT\QT5.12\Tools\mingw730_64\bin\mingw32-make.exe" clean -j6

E:\QT\QT5.12\5.12.1\mingw73_64\bin\qmake.exe -o Makefile .\ExcelDemo\ExcelDemo.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"

Project ERROR: Unknown module(s) in QT: xlsx

mingw32-make: *** [Makefile:253: Makefile] Error 3

qtxlsx編譯報錯_QT5.12版本下編譯和搭建QTXlsx庫讀取Excel表格第二講

08:27:48: 程序"E:\QT\QT5.12\Tools\mingw730_64\bin\mingw32-make.exe"退出,退出代碼 2 。

08:27:48: 配置沒有改變, 跳過 qmake 步驟。

08:27:48: 正在啟動 "E:\QT\QT5.12\Tools\mingw730_64\bin\mingw32-make.exe" -j6

E:\QT\QT5.12\5.12.1\mingw73_64\bin\qmake.exe -o Makefile .\ExcelDemo\ExcelDemo.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"

Project ERROR: Unknown module(s) in QT: xlsx

mingw32-make: *** [Makefile:253: Makefile] Error 3

qtxlsx編譯報錯_QT5.12版本下編譯和搭建QTXlsx庫讀取Excel表格第二講

08:27:50: 程序"E:\QT\QT5.12\Tools\mingw730_64\bin\mingw32-make.exe"退出,退出代碼 2 。

Error while building/deploying project ExcelDemo (kit: Desktop Qt 5.12.1 MinGW 64-bit)

When executing step "Make"

08:27:51: Elapsed time: 00:05.

解決方法

qtxlsx編譯報錯_QT5.12版本下編譯和搭建QTXlsx庫讀取Excel表格第二講

将build下的這個檔案夾下的内容拷貝到qt的安裝目錄下。如我的建構路徑是:F:\nhy\Source\QT512\excel\build-qtxlsx-Desktop_Qt_5_12_1_MinGW_64_bit-Debug\mkspecs

qt的安裝路徑也就是拷貝路徑是

E:\QT\QT5.12\5.12.1\mingw73_64\mkspecs,再進行建構就成功了哦。

成功運作截圖

qtxlsx編譯報錯_QT5.12版本下編譯和搭建QTXlsx庫讀取Excel表格第二講

qmake環境搭建成功了,編譯基本就沒有問題了哦。

qtxlsx編譯報錯_QT5.12版本下編譯和搭建QTXlsx庫讀取Excel表格第二講

總結

我們必須要将qt需要的環境在pro檔案中進行配置好,然後先給項目執行qmake,其次是建構,最後運作即可。比如在調用qtxlsx庫之前,需要在pro檔案中添加:QT +=xlsx,如qmake有錯誤及時進行相關的解決。

qtxlsx編譯報錯_QT5.12版本下編譯和搭建QTXlsx庫讀取Excel表格第二講

在使用庫之前,一定要将相關的調用原理了解清楚,這樣才能找到根本的問題所在,能夠将問題圓滿解決。

備注:如果後續需要在visual stdio下進行qt環境的搭建了,需要将qtxlsx對應的源碼進行qt版本的編譯,在編譯路徑下選擇vs對應的版本即可,将相關的庫檔案和頭檔案拖入到相關的路徑下即可。

如果後續你在這裡遇到問題了,我們可以一起交流的哦。原理都是一樣的哦。至此圓滿結束。