Dev-C++ 下 需要把MySQL 的 libmySQL.dll轉變為libmySQL.a

來源:互聯網
上載者:User

http://16hot.blog.isyi.com/post/1/144

在網上搜尋到一些資料,按照上面提示的方法。

已經解決了問題。

因為我使用的是Dev-C++開發工具。他使用的是gcc編譯器。

而MySQL提供的Windows For C串連庫不支援gcc 、 CygWin 、MinGW等。

因此在編譯串連的時候,就會出現錯誤提示。

解決方案:

1 、安裝好MySQL (如果不願意安裝,那找個libmySQL.dll檔案也可以)

2、下載Pexports工具

3、轉換操作: pexports libmySQL.dll > libmySQL.def

4、使用Cygwin的 dlltool轉換成為libmysql.a檔案。dlltool --input-def libmySQL.def --dllname libmySQL.dll --output-lib libmysql.a -k

5、嘗試是否成功: gcc -o mysqldemo mysqldemo.o <path to libmysql.a>

如果再出現象mysql_connect@xx (xx是數字)的錯誤提示。就執行第6步。

6、修改libmysql.def檔案,給mysql_connect加上@xx,即: mysql_connect@xx

7、重做第4步

8、然後嘗試第5步,如果還是出現錯誤提示。就作第6步。一直到沒有錯誤為止。

 7 Comments on "解決Windows下C串連MySQl的問題"
  1. 作者 16hot 你是如何編譯的呢? [ 回複 ]
    04/11/2005, 23:51

     

    你是如何編譯的呢?

     

  2. 作者 16hot 操作步驟 [ 回複 ]
    05/11/2005, 17:32

     

    第一步:指定mysql.h等包含檔案的路徑
    在Dev-C++裡,開啟項目,Alt+P 開啟項目屬性。
    在“檔案/目錄” -> “包含檔案目錄”添加你存放mysql標頭檔的路徑。

    第二步:產生libmySQL.a檔案
    參考我上面的文章,必須將libmySQL.dll轉換成為libmySQL.a ,編譯器才能認。
    因為mysql內建的libmySQL.dll是給微軟的VC++使用的。:(
    我也因為這個問題,搞了N久。

    第三步:指定libmySQL.a的路徑
    同樣是在項目屬性裡。在“參數”頁,有個“連接器”框。在下面有“加入庫或者對象”,點擊開啟,到你存放libmySQL.a檔案的目錄,選擇它。
    然後“確定”退出屬性視窗,再編譯。

    這時候會出現一些函數提示如mysql_query@8 不存在等。需要參考上面文章,一步一步改,產生新的libmySQL.a檔案。
    直到成功為止。

     

  3. 作者 lewbing [ 回複 ]
    11/05/2006, 22:31

     

    16hot兄:真的非常感謝,為了這一丁點東西,我找這方面的資料找了好久呢。由於討厭使用盜版軟體,在可能的情況下,我都使用Free Software完全代替了盜版軟體。因此我也用DEV-CPP完全代替了Visual C++,不過DEV-CPP使用資料真的奇缺,協助文檔也不夠詳細。免費軟體嘛,哪能做那麼周到,不過在此還是真得謝謝你了。
    我想在過些時把一些常用的、國內資料少的開發軟體使用方法、技巧寫一些文章,希望到時候我們可以交流一下,我留下Gmail郵箱,請你時間時請給我Mail吧,到時候我們在交流一下啊!!!
    Email:lewbing@gmail.com

     

  4. 作者 kenny 關於 libmysql.a問題 [ 回複 ]
    09/07/2007, 18:16

     

    您好
    我找了網路上好多文章~終於看到這篇
    於是我試著你的方法~產生了 libmysql.a
    但是我link的時候還是會發生錯誤...
    [Linker error] undefined reference to `mysql_init@4'
    [Linker error] undefined reference to `mysql_real_connect@32'
    [Linker error] undefined reference to `mysql_query@8'
    [Linker error] undefined reference to `mysql_close@4'

    我的IDE是 DEV-C++ 4.9.9.2
    MYSQL是 5.0.27
    請問您有遇過這樣問題嗎?

     

  5. 作者 16hot 修改libmysql.def檔案 [ 回複 ]
    12/07/2007, 21:43

     

    修改libmysql.def檔案,把提示沒有的函數都加上,然後再從第4、5步。如果還有,就繼續重複,直到沒有提示為止。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.