• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Fork me on GitHub
            隨筆 - 215  文章 - 13  trackbacks - 0
            <2021年9月>
            2930311234
            567891011
            12131415161718
            19202122232425
            262728293012
            3456789


            專注即時通訊及網(wǎng)游服務(wù)端編程
            ------------------------------------
            Openresty 官方模塊
            Openresty 標準模塊(Opm)
            Openresty 三方模塊
            ------------------------------------
            本博收藏大部分文章為轉(zhuǎn)載,并在文章開頭給出了原文出處,如有再轉(zhuǎn),敬請保留相關(guān)信息,這是大家對原創(chuàng)作者勞動成果的自覺尊重!!如為您帶來不便,請于本博下留言,謝謝配合。

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            相冊

            Awesome

            Blog

            Book

            GitHub

            Link

            搜索

            •  

            積分與排名

            • 積分 - 216726
            • 排名 - 118

            最新評論

            閱讀排行榜

            mingw 將windows lib.dll 轉(zhuǎn)成 lib.a 例子 (轉(zhuǎn))
            https://blog.csdn.net/ilvu999/article/details/8050302
            https://www.cnblogs.com/heling/archive/2013/06/05/3118573.html

            原文 http://1029975378-qq-com.iteye.com/blog/1310910

             

             昨天是一場經(jīng)過了如此糾結(jié)的MySQL數(shù)據(jù)庫的卸載再安裝的洗禮的一天,今天的在Windows下Qt驅(qū)動MySQL數(shù)據(jù)庫也是歷經(jīng)千辛萬苦才到達成功的彼岸的。雖然遇到了各種亂七八糟的問題,不過總算是圓滿解決,這也是令人欣慰的一點吧。謹以此文紀念下我的艱難曲折。如果能為大家提供一些幫助,我將不勝榮幸。

                  MySQL不能選擇Typical型,這樣會缺少庫文件。可以選擇Full型或Custom型。我安裝的MySQL是Typical型的,所以在lib目錄下是沒有opt文件夾的,因此進行了重新安裝(積累了N多經(jīng)驗,這次安裝可算是小菜一碟)。為了圖方便,我直接選擇了Full型的,但這樣會存在一個問題,MySQL默認的安裝路徑是C:\Program Files\MySQL\MySQL Server 5.1,這個路徑中存在空格,這會在后面的操作中出現(xiàn)問題。我的解決方案是在C盤下直接新建一個mysql文件夾,將C:\Program Files\MySQL\MySQL Server 5.1\include 和C:\Program Files\MySQL\MySQL Server 5.1\lib目錄拷到C:\mysql文件夾下。

                   安裝好MySQL后,進行Qt的安裝。將Qt下的bin和QT\qt\bin配置環(huán)境變量。

                   Qt是集成了mingw的,看到網(wǎng)上說要下載MinGW,不管三七二十一,我也下載安裝了一下。將MinGW的bin配置環(huán)境變量。

                   mingw使用的庫和msvc使用的不同格式的庫而引起的。而mysql只提供了msvc可使用的庫,所以需要下載一個動態(tài)庫格式轉(zhuǎn)換工具,網(wǎng)址為: http://www.qtcn.org/download/mingw-utils-0.3.tar.gz,解壓后把里邊bin目錄里的remip.exe拷到mingw的bin目錄。我是把reimp.exe同時也放到了MinGW的bin下(我也不知道有沒這必要,一來是首次接觸Qt這東東,二來也沒看到網(wǎng)上詳細的解釋)。

            以下為本人機器上的命令行操作,路徑請修改為自己設(shè)置的:
            過程:
            1:從libmysql.lib生成libmysql.a文件(mingw使用的靜態(tài)鏈接文件為linux格式 *.a)
            >>C:
            >>cd mysql\lib\opt
            >>reimp -d libmysql.lib (生成 libmysql.def文件)
            >>dlltool -k -d libmysql.def -l libmysql.a (生成 libmysql.a文件)

            2:生成Qt下的mysql驅(qū)動:
            >>cd \
            >>cd qt\src\plugins\sqldrivers\mysql
            >>QMAKE -o Makefile "INCLUDEPATH+=C:\mysql\include" "LIBS+=C:\mysql\Llib\opt\libmysql.a" mysql.pro
            >>mingw32-make

            在這個時候,我遇到問題。在執(zhí)行完QMAKE -o Makefile "INCLUDEPATH+=C:\mysql\include" "LIBS+=C:\mysql\Llib\opt\libmysql.a" mysql.pro
            會出現(xiàn)警告。

             

            WARNING: (internal):1: Unescaped backslashes are deprecated.   

            WARNING: (internal):1: Unescaped backslashes are deprecated.   

            WARNING: (internal):1: Unescaped backslashes are deprecated. 

             

                  遇到該警告,也有看到網(wǎng)上有相應(yīng)的解決方法,現(xiàn)在也把它放上來以供參考。但貌似這警告對后面的執(zhí)行沒有影響。

            用記事本打開D:\Qt\2010.05\qt\src\plugins\sqldrivers\mysql\ mysql.pro文件,在第二行加入: INCLUDEPATH += "C:/Program Files/MySQL/MySQL Server 5.1/include" LIBS += "C:/Program Files/MySQL/MySQL Server 5.1/lib/opt/libmysql.lib" 并保存.

                  (其實我也比較困惑這個問題,我覺得應(yīng)該是在第二行加入:INCLUDEPATH+="C:\mysql\include" LIBS+="C:\mysql\Llib\opt\libmysql.a" 這只是我的猜測,我也沒試過。呵呵~)

                  在執(zhí)行mingw32-make時,出現(xiàn)了一堆vc98的問題,在網(wǎng)上看了蠻多的博文,都沒有看到類似的問題,不過踏破鐵鞋無覓處得來全不費工夫,終于在某篇博文上看到了這個問題,博主也給出了解決方法。造成一堆亂78糟的vc98問題的原因是在裝vc98時自動的配置了環(huán)境變量include 和 lib ,先刪了這兩個環(huán)境變量,執(zhí)行完mingw32-make命令后再重新配置回去就沒有問題了。

             

                   成功執(zhí)行后,會E:\QT\qt\plugins\sqldrivers下生成下面四個文件。

            1. qsqlmysql4.dll   
            2. libqsqlmysql4.a  
            3. qsqlmysqld4.dll   
            4. libqsqlmysqld4.a  

                  這樣,終于,Qt可以驅(qū)動Mysql了。

                  接下來寫下測試程序。

                  頭文件引入:

            #include <QSqlDatabase>

            #include <QSqlError>

                 

                 測試代碼:

            Cpp代碼  收藏代碼
            1. QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");  
            2. db.setHostName("localhost");  
            3. db.setDatabaseName("gamesql");  
            4. db.setUserName("root");  
            5. db.setPassword("netjava");  
            6. bool ok = db.open();  
            7. if(!ok){  
            8.     qDebug()<<"failuer";  
            9.     qDebug()<<db.lastError();  
            10. }else{  
            11.     qDebug()<<"success";  
            12. }  

             

             

            注意,要在項目的pro文件下加入

            QT +=sql

            才可以。

             

            QT += core gui QT +=sql TARGET = test TEMPLATE = app

             

            好了,這樣一切OK啦~~

            就一個簡單的配置驅(qū)動問題,弄了一天,整個人就屬于焦頭爛額的狀態(tài),不過收獲還是有的嘛。在塵埃落定的那一刻,還是蠻開心的~~(*^__^*) ~~

             

            驅(qū)動安裝問題小結(jié)一下:

            1.MySQL的include和lib路徑中不能含有空格。

            2.下載mingw-utils-0.3.tar.gz 將其解壓后的reimp.exe放到mingw下,執(zhí)行生成libmysql.a文件

            3.配置Qt環(huán)境變量。同時我也把WinGW也配置了環(huán)境變量(我不知道這是否必要)。

            4.用qmake和make命令生成MySQL驅(qū)動。

            4.警告解決,用記事本打開D:\Qt\2010.05\qt\src\plugins\sqldrivers\mysql\ mysql.pro文件配置文件。

             

            5.如果有vc98相關(guān)環(huán)境變量,將vc98的環(huán)境變量先刪了,裝好后再恢復(fù)。

             

            希望能對大家有幫助~~

            posted on 2018-06-13 16:17 思月行云 閱讀(1821) 評論(1)  編輯 收藏 引用 所屬分類: C\C++Nginx\Openresty

            FeedBack:
            # re: .lib轉(zhuǎn)換為.a之后MinGW編譯引用(Windows平臺) 2018-06-13 16:21 思月行云
            精品久久人人爽天天玩人人妻| 亚洲国产精品无码久久久久久曰| 性做久久久久久久久浪潮| 久久精品国产99久久香蕉| 久久久久亚洲AV综合波多野结衣| 亚洲午夜无码久久久久小说| 综合网日日天干夜夜久久| 久久久久亚洲av无码专区导航| 亚洲欧美成人久久综合中文网| 久久久亚洲裙底偷窥综合| 2021少妇久久久久久久久久| 精品久久久久久国产三级| 亚洲女久久久噜噜噜熟女| 国内精品久久九九国产精品| 亚洲国产成人精品无码久久久久久综合 | 伊人色综合久久天天人守人婷| 人妻无码αv中文字幕久久琪琪布| 99久久婷婷国产综合亚洲| 久久99精品久久久久久秒播| 久久夜色精品国产网站| 国产成人久久精品麻豆一区| 久久精品卫校国产小美女| 久久久久久久综合日本| 久久精品国产清高在天天线| 色婷婷狠狠久久综合五月| 久久综合久久综合九色| 久久久久99精品成人片试看| 亚洲精品无码专区久久同性男| 精品久久久久久国产三级| 久久99毛片免费观看不卡| 亚洲国产精品综合久久一线| 色综合久久中文色婷婷| 91精品国产综合久久久久久| 久久人人添人人爽添人人片牛牛| 久久亚洲精品无码观看不卡| 国产福利电影一区二区三区久久老子无码午夜伦不 | 97久久精品无码一区二区天美| 久久久久亚洲AV无码专区首JN| 亚洲国产天堂久久综合| 99久久精品免费看国产免费| 久久久久夜夜夜精品国产|