Qt的編程中包含了插件模式,使得程序的擴展性非常好,但插件的動態加載的檢查也比較嚴格,這次編譯數據庫驅動插件就碰到了不少問題。實際上,可以在系統的環境變量中設置QT_DEBUG_PLUGINS=1,再執行程序加載插件時,再系統控制台上會輸出許多加載插件時的調試信息,可以清楚的看到系統嘗試加載了哪些插件,哪些是成功的,哪些沒有成功,原因是什麼都寫的比較清楚。因此,如果自己編譯的插件庫無法加載,可以用這個方式檢查以下到底是哪裡的問題。
無法加載的原因基本有3種:
1. 編譯的插件庫沒有放在正確的目錄下,程序根本沒找到;
2. 插件庫運行需要其他庫的支持(比如數據庫驅動插件,需要額外的相關數據庫連接庫),如果系統沒有找到這些相關庫,雖然可以找到你的插件,同樣會無法加載;
3. Build Key不兼容的問題,也就是說主程序編譯的環境和插件編譯的環境不兼容,導致插件和主程序可能無法調用,因此Qt也無法加載這些插件。