1. 程式人生 > >ubuntu Linux上Qt 配置疑難雜症

ubuntu Linux上Qt 配置疑難雜症

1. Qt 連線mysql程式執行時報如下錯誤

QSqlDatabase: MYSQL driver not loaded QSqlDatabase:

available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

原因可能是QT安裝自帶的缺乏libqsqlmysql.so響應的libmysqlclient.so依賴庫,用ldd工具檢視libqsqlmysql.so依賴是否完整,

如:ldd /home/liser/Qt5.9.4/Tools/QtCreator/lib/Qt/plugins/sqldrivers/libqsqlmysql.so

顯示libmysqlclient.so.20 => not found

則需要自己編譯生成新的libqsqlmysql.so

步驟如下:

a. 安裝libmysqlclient依賴

sudo apt-get install mysql-client libmysqlclient-dev

b. cd /home/liser/Qt5.9.4/5.9.4/Src/qtbase/src/plugins/sqldrivers/mysql

qmake && make

c. 將生成的/home/liser/Qt5.9.4/5.9.4/Src/qtbase/plugins/sqldrivers/libqsqlmysql.so

拷貝到/home/liser/Qt5.9.4/5.9.4/gcc_64/plugins/sqldrivers/和/home/liser/Qt5.9.4/Tools/QtCreator/lib/Qt/plugins/sqldrivers/目錄下

d. 重新執行測試程式,成功解決該問題

2. 編譯Qt自動建立的視窗程式,報如下錯誤

mainwindow.cpp:(.text+0x27):undefined reference to ‘vtable for MainWindow’

可能原因是公司電腦給檔案加密了,

驗證:

直接編譯/home/liser/Qt5.9.4/Examples/Qt-5.9.4/gui/rasterwindow通過,修改rasterwindow下原始檔(給.h .cpp之類加個空格再儲存)後再編譯則報錯,則很大可能是由於加密軟體造成的,這種情況要聯絡管理員將Qt工具加入信任。