1. 程式人生 > >QT5在測試機上釋出時出現QSQLITE driver not loaded的解決辦法

QT5在測試機上釋出時出現QSQLITE driver not loaded的解決辦法

在工程機上編譯好好的程式碼,在沒有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操作在釋出環境下終於可以工作了 ^_^。