mingw環境新增mysql開發庫

2021-09-06 23:29:01 字數 1522 閱讀 6229

今天碰巧要用到mysql進行開發,在windows的mingw平台。

1.開發

安裝完了之後就進行開發,下面這個是乙個示例程式

1 #include 2 #include 3 #include 4 #include 5

6int main(int argc,char *argv)719

else

2023 mysql_close(&conn);24}

25return0;

26 }

要把mysql安裝程式中的include複製到開發環境中。然後還有構造乙個libmysql.a這種靜態鏈結庫。

官方mysql的win發行版是由vc編譯,產生的lib無法被mingw鏈結。鏈結時會丟擲未定義錯。

具體的辦法如下 在include資料夾中複製 libmysql.def 到 lib目錄,在lib目錄執行下面這句

dlltool --input-def libmysql.def --dllname libmysql.dll --output-lib libmysql.a -k  (dlltool 工具是mingw自帶)

此時會生成乙個libmysql.a檔案。然後把這個檔案複製到開發環境中,就基本是可以了。

我們弄好了這些後就編譯一下,

g++ main.cpp -o main.exe -iinclude -l. -lws2_32 -lmysql 

居然會出現這種錯誤

c:\docume~1\admini~1\locals~1\temp\cc8hizra.o:main.cpp:(.text+0x68): undefined reference to `mysql_init@4

'c:\docume~1\admini~1\locals~1\temp\cc8hizra.o:main.cpp:(.text+0xb1): undefined reference to `mysql_real_connect@32

'c:\docume~1\admini~1\locals~1\temp\cc8hizra.o:main.cpp:(.text+0xdf): undefined reference to `mysql_query@8

'c:\docume~1\admini~1\locals~1\temp\cc8hizra.o:main.cpp:(.text+0x11d): undefined reference to `mysql_close@4

'collect2.exe: error: ld returned 1

exit status

make: *** [main] error 1

解決如下

開啟libmysql.def修改對應出錯的地方如

就像這樣,在後面手動增加數字,然後重複上面的操作,重新用dlltool生成一次libmysql.a鏈結庫

到這裡就可以用了。

參考資料

mingw 搭建Emscripten 環境

mingw 環境的搭建可以參考網上很多文章,不複雜。但在搭建emscripten 環境之前需要配置git 和python 和msbuild.exe 還需要安裝camke 預設安裝之後應該是新增了 系統環境變數,如果mingw內無法使用cmake的話可以手動設定profile 檔案 下面是mingw的...

win安裝rust環境 mingw

安裝mignw 修改系統環境變數 名稱 值 rustup dist server rustup update root rustup 執行 init 提示沒有安裝編譯工具 選擇繼續 選擇2自定義 default host triple x86 64 pc windows gnu default to...

msys64 mingw環境搭建

c msys64 etc pacman.d 修改映象檔案,用之前一定要先測試一下連線是否成功 mirrorlist.msys 這個映象非常少,我寫的位址有時也不能連線上 msys2 repository mirrorlist primary msys2.orgmirrorlist.mingw32 3...