QT5在測試機上釋出時出現QSQLITE driver not loaded的解決辦法
阿新 • • 發佈:2018-11-19
在工程機上編譯好好的程式碼,在沒有QT環境的測試機上花樣報錯。windeployqt 似乎永遠不懂我們的心。缺這個少那個,執行時找不到DLL真的是很折磨人的事兒。不知道少什麼,知道少什麼了不知道放在哪兒。
query.exec(selectsql);
if(!query.next())
{
qDebug()<<"isTableExists "<<query.lastError().text();
return false;
}
釋出模式下列印到檔案裡輸出這種東東。
Warning: QSqlQuery::exec: database not open 0
Debug File: Line:0 Content:isTableExists "Driver not loaded Driver not loaded"
百度的各種辦法均是中看不中用,無奈之下,找到process monitor這個利器。監控過濾選擇程序名,然後執行,發現工程機的QT環境下,如果搜尋qsqlite,是可以搜到的,用到的qsqlite.dll 目錄是在plugins的sqldrivers下面。
而在釋出環境下搜尋則是一無所獲。
繼續搜尋plugin, 發現一個路徑搜尋錯誤,
於是在釋出環境下建立plugins目錄,把QT下的sqldrivers連資料夾複製到裡面,一切OK。
然後,各種SQLITE操作在釋出環境下終於可以工作了 ^_^。