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 解决方法相关推荐

  1. 连接Oracle远程数据库错误:ORA-12541,ORA-12514,ORA-01017的解决方法!

    连接Oracle远程数据库错误:ORA-12541,ORA-12514,ORA-01017的解决方法! 参考文章: (1)连接Oracle远程数据库错误:ORA-12541,ORA-12514,ORA ...

  2. 数据库错误代码:1055(Error Number: 1055) 解决方法

    数据库错误代码:1055(Error Number: 1055) 解决方法 发生在mysql 5.7中,将MySQL更改为MySQLI发生了错误,错误代码1055(Error Number: 1055 ...

  3. Spring连接mysql数据库错误:Cannot load JDBC driver class '${driver}'

    在用Spring使用连接mysql数据库时出现如下错误: Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could ...

  4. Django连接MySQL数据库错误:django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module

    Django项目里已经添加了PyMySQL,数据库的配置也修改好了,但是连接MySQL,却显示找不到MySQL,如图: 连接数据库的设置如下: DATABASES = {'default': {'EN ...

  5. 安装解压版本的MySQL,安装过程中的常见命令,检查windows系统错误日志的方式来检查MySQL启动错误,关于Fatal error: Can't open and lock privilege

    安装mysql 下载mysql-5.6.26-winx64,并解压到:D:\Installed\mysql-5.6.26-winx64\mysql-5.6.26-winx64 创建data目录 创建m ...

  6. 远程连接oracle01017,连接Oracle远程数据库错误:ORA-12541,ORA-12514,ORA-01017的解决方法!...

    1.出现如下错误:ORA-12541:TNS:no listener,如下图所示: 错误原因是我们没有开启Listener监听器服务,解决方法是在服务中开启这个服务,如下图所示. 2.出现如下错误:O ...

  7. C#连接mysql数据库的一个例子和获取本机IP的方法

    本例子是一个最初级直接连接mysql数据库的例子,实现了往数据库插入数据的操作: string MyConnectionMysql="Server=localhost;Datbase=xxx ...

  8. 【MySQL】Got fatal error 1236原因和解决方法

    一 前言   MySQL 的主从复制作为一项高可用特性,用于将主库的数据同步到从库,在维护主从复制数据库集群的时候,作为专职的MySQL DBA,笔者相信大多数人都会遇到"Got fatal ...

  9. 基于Mac——dbeaver连接MySQL数据库错误提示Connection refused

    新入坑Mac,因为工作原因会用到数据库,所以需要下载mysql(截止发表日期最新版本8.0.32).dbeaver.kettle,但在配置好之后无论怎么连接是一直提示Connection refuse ...

最新文章

  1. 初学者如何开发出高质量J2EE系统
  2. Linux系统中,read文件过程分析
  3. IBM计划未来四年在美聘用2000名退伍军人
  4. 方差、标准差、均方根误差
  5. MDK编译生成bin文件
  6. 国内 GitHub 造假黑色产业链曝光;开源开发者撤销对 ICE 禁用的决定
  7. 高级SmartGWT教程,第1部分
  8. python图片保存重命名_Python实现重命名一个文件夹下的图片
  9. 打开储存在服务器的文件,云服务器储存文件
  10. android 将bitmap存为 bmp格式图片大小,把bitmap保存成 BMP的格式 并且位深度为1
  11. python开发环境有哪些_python开发环境哪个好用?如何搭建?
  12. linux环境搭建nacos集群详解
  13. java 利用 ffmpeg 实现音频格式转码
  14. PPT母版和PPT模板
  15. 计算机思维在生活中的应用,孩子必备的计算机思维,如何从生活中培养?
  16. 街头篮球服务器ip地域位置图,浅谈《街头篮球》韩服与国服六个位置的不同之处...
  17. C++俄罗斯方块源码(Qt版)
  18. 21秋北京中医药大学《有机化学Z》平时作业1
  19. 搭建Vue3 后台管理框架 —— 登录页面
  20. Lua初学者(一)--Lua 简单教学

热门文章

  1. 模拟智能手环的时间显示功能 c语言,HT1635AHT1635B在穿戴式运动手环的LED显示之C语言版.PDF...
  2. Mysql高级考试题_MySQL高级应用答案试题题目及答案,期末考试题库,章节测验答案...
  3. 计量经济学建模_一分钟看完计量经济学
  4. leetcode 501. 二叉搜索树中的众数 思考分析
  5. fcfs调度算法_FCFS:先来先服务调度算法
  6. python 入门到实践期末考试常出现的考试内容_Python编程入门到实践—列表篇(一)...
  7. call和ret(f)指令
  8. 关于Tomcat双击startup.bat文件一闪而过问题
  9. 【计算机网络】TCP IP通信处理过程
  10. 【计算机网络】网络基础