今天碰巧要用到mysql進行開發,在windows的mingw平台。
1.開發
安裝完了之後就進行開發,下面這個是乙個示例程式
1 #include 2 #include 3 #include 4 #include 5要把mysql安裝程式中的include複製到開發環境中。然後還有構造乙個libmysql.a這種靜態鏈結庫。6int main(int argc,char *argv)719
else
2023 mysql_close(&conn);24}
25return0;
26 }
官方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...