日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

VC连接mysql数据库错误:libmysql.lib : fatal error LNK1113: invalid machine 解决方法

發布時間:2023/11/30 数据库 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VC连接mysql数据库错误:libmysql.lib : fatal error LNK1113: invalid machine 解决方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

VC連接MySQL的配置過程在上一篇博文中,不過當你設置好,以為萬事大吉的時候,運行卻出現這個錯誤:libmysql.lib : fatal error LNK1113: invalid machine type。?無效的機器類型,真的是很讓人捉急。

?

發生這個錯誤的原因是,我在win8.1上安裝的是64bit的mysql服務器,而我編譯32位的VC程序,連接的是64位的libmysql.lib庫,所以會產生 “無效的機器類型(invalid machine type)”的錯誤提示。

對于這個“error LNK1113”錯誤的解決方案是:

?? 下載32位的mysql的zip包,大概100多M的那個。解壓出來,把lib目錄按照,第4步定位lib。這樣的話,我們的32位程序編譯的時候,鏈接的就是32位的庫,就不會出現上面的鏈接錯誤了。也不必換到xp系統上去操作了。

環境說明:

操作系統:windows 8.1

開發工具:VC++6.0

開發的exe:32位程序

數據庫服務器:64位的mysql-5.5

引用的數據庫lib:32位的mysql-5.7.10-win32.zip(320M)的lib文件夾。

?

步驟如下:

1.??到官網www.mysql.com下載MySQL安裝包:

? ?mysql-5.7.10-win32.zip ?地址:http://dev.mysql.com/downloads/mysql/

? ?當然你也可以下載安裝mysql*.msi。

2.??安裝mysql,在安裝過程中如(如果是.msi安裝),一定要選上C Include Files / Lib Files,這樣在安裝后才能在mysql的安裝文件夾中找到include和lib文件夾,這些文件夾將在下面的操作用會用到。

3.? 把D:\Mysql32\mysql-5.7.10-win32\lib下的libmysql.dll復制并拷貝到C:\WINDOWS\system32下。(這一步我沒有做,一樣可以編譯通過,我是在WIN8.1下驗證的,不知在XP或是win-NT中是否需要這一步)。

4. 這也是最關鍵的一步!打開:工具->選項菜單,找到“目錄”標簽,可以看到有一個:“顯示目錄為”的下拉框,選擇Library files選項,在其中加入: 【32位的mysql zip解壓文件夾】\MySQLServer 5.7\lib\,如圖:

? ?

?

? ? 可以看到我這個是32位的lib

5.如果你把libmysql.lib,libmysql.dll復制到程序目錄下,別忘了用你下的32位的文件替換原來的。

6.編譯運行,成功。

? ?只需要用32位的lib替換64位的lib,這樣的話,我們的32位程序編譯的時候,鏈接的就是32位的庫,就不會出現上面的鏈接錯誤了。

? 解決方法還是很簡單的,就是下載zip包太慢啦。。。。

// test.cpp : Defines the entry point for the console application. // #include <stdio.h> #include <windows.h> #include "StdAfx.h"#include <winsock.h> #include <iostream> #include <string> #include <mysql.h> using namespace std; //#pragma comment (lib,"ws2_32.lib") //#pragma comment(lib,"libmysql.lib") //不需要單步調試的就注釋掉 //#define STEPBYSTEP void pause(){ #ifdef STEPBYSTEP system("pause"); #endif } void writeToFile(const char *s) { FILE *fp=fopen("info.txt","rw"); fprintf(fp,s); fclose(fp); } /* int main(){MYSQL mysql;mysql_init(&mysql); //初始化mysql結構if(!mysql_real_connect(&mysql,"localhost","myuser","123456","student_db",3306,NULL,0))printf("\n連接數據庫時發生錯誤!\n");elseprintf("\n連接數據庫成功!\n");mysql_close(&mysql); //釋放數據庫return 0; }*/ int main(int argc, char* argv[]){ cout<<"start...."<<endl; pause(); MYSQL mysql; if(0==mysql_library_init(0,NULL,NULL)) { cout<<"mysql_library_init succeed"<<endl; }else{ cout<<"mysql_library_init failed"<<endl; return -1; } pause(); if(NULL!=mysql_init(&mysql)) { cout<<"mysql_init succeed"<<endl; }else{ cout<<"mysql_init failed"<<endl; return -1; } pause(); if(0==mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"gb2312")) { cout<<"mysql_option succeed"<<endl; }else{ cout<<"mysql_option failed"<<endl; return -1; } pause(); if(NULL!=mysql_real_connect(&mysql,"localhost","myuser","123456","student_db",3306,NULL,0)) { cout<<"mysql_real_connect succeed"<<endl; }else{ cout<<"mysql_real_connect failed"<<endl; return -1; } pause(); string sql; sql="select * from sgroup"; MYSQL_RES *result=NULL; if(0==mysql_query(&mysql,sql.c_str())) { cout<<"mysql_query select succeed"<<endl; result=mysql_store_result(&mysql); int rowcount=mysql_num_rows(result); cout<<"row count:"<<rowcount<<endl; unsigned int fieldcount=mysql_num_fields(result); MYSQL_FIELD *field=NULL; for(unsigned int i=0;i<fieldcount;i++) { field=mysql_fetch_field_direct(result,i); cout<<field->name<<"\t\t"; } cout<<endl; MYSQL_ROW row=NULL; row=mysql_fetch_row(result); while(NULL!=row) { for(int i=0;i<fieldcount;i++){ cout<<row[i]<<"\t\t"; } cout<<endl; row=mysql_fetch_row(result); } }else{ cout<<"mysql_query select data failed"<<endl; mysql_close(&mysql); return -1; } pause(); /*sql="drop table user_info"; if(0==mysql_query(&mysql,sql.c_str())) { cout<<"mysql_query drop table succeed"<<endl; }else{ cout<<"mysql_query drop table failed"<<endl; mysql_close(&mysql); return -1; } */mysql_free_result(result); mysql_close(&mysql); mysql_server_end(); system("pause"); return 0; }

  

轉載于:https://www.cnblogs.com/jycboy/p/5170751.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的VC连接mysql数据库错误:libmysql.lib : fatal error LNK1113: invalid machine 解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。