centos 下Qt安裝 mysql驅動(親測可行)


前半部分沒有試過,因為我的有mysql驅動,實在抱歉      

      1.預防萬一,先安裝一下mysql-devel(一定要裝!)。 不安裝的話后面編譯會出現找不到-lmysqlclient的問題。

      2. 開始編譯:

   cd $QTDIR/src/plugins/sqldrivers/mysql   //進入QT那個存放mysql驅動源碼的目錄``

   qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient_r" mysql.pro  

//這一句中我修改一下了qt助手里的語句,因為我的mysql庫的位置是在/usr/include/mysql,/usr/lib/mysql 中。
   
make //然后make一下

    3. 最后一步

   cd $QTDIR/src/plugins/sqldrivers/mysql //這里也是進入那個目錄``
    make install    //生成, 在上面make那步好像也生成過的了,不過這一步還是要做一下··

    4. 完成

   你可以在/qtsdk-2009.05/qt/plugins/sqldrivers里找到一個剛生成的libqsqlmysql.so,這個就是mysql的驅動

  下面是我遇到的情況
   首先我的Linux系統,64位的Centos,Qt版本 4.8.4安裝方式前面博客說過了
   好了,現在先說遇到的問題,可以編譯通過,就是執行報錯:
   Available drivers:  "QSQLITE" 

   QSqlDatabase: QMYSQL driver not loaded
   QSqlDatabase: available drivers: QSQLITE

    看到網上不知道是否是真的有用的,基本都說編譯什么Mysql驅動,缺少libqsqlmysql.so,說的……………………不好評論,我是看不懂。

    但是我查證我的安裝目錄是有libqsqlmysql.so的,現在只能考慮是不是目錄路徑不對,但是我可以編譯通過,就是執行報錯,對此也表示懷疑,暫且就把目錄路徑都加到系統搜索路徑(更改PATH環境變量,把庫拷到/usr/lib64等等,沒招了)。

    問題依然沒有解決,原地踏步,下面是關鍵。

    分析上面的錯誤:QSQLITE可用,但是QMYSQL 不可用,

   再進一步分析,這兩個的依賴庫(libqsqlite.so  libqsqlmysql.so)是存在目錄都是相同的,就開始懷疑是庫所依賴的東西出了問題,現在ldd  libqsqlmysql.so顯示:

   

    果然有問題,看到上面的libmysqlclient.so.18 => not found,這就是問題所在,下面就開始解決:

    (1)先找到libmysqlclient.so.18 的所在路徑,find / -name libmysqlclient.so.18 

     (2)  vim /etc/ld.so.conf 在最后添加一行(就是剛剛的搜索到的路徑),意告訴系統libmysqlclient.so.18去那個路徑下尋找。

    (3)ldconfig  必須導入剛剛的配置。

     (4)  再次運行ldd  libqsqlmysql.so顯示不再是not   found:

     好了,現在回到關鍵問題,執行Qt程序,驚喜,成功了。關於/etc/ld.so.conf 的介紹博客有介紹。

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM