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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396844.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 内存泄漏 定位,一种内存泄露检查和定位的方法

一个系统后台服务进程&#xff0c;可能包括多个线程&#xff0c;在生成环境下要求系统程序能够稳定长时间稳定运行而不宕机。其中一个基本的前提就是需要保证系统程序不存在内存泄露。那么&#xff0c;该如何判读系统程序是否存在内存泄露呢&#xff1f;如果存在&#xff0c;又…

python怎么发送邮件_在Python如何使用SMTP发送邮件

SMTP&#xff08;Simple Mail Transfer Protocol&#xff09;即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则&#xff0c;由它来控制信件的中转方式。 python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。 Python创建 SMTP…

统计单词个数(划分型)

codevs 1040 统计单词个数 2001年NOIP全国联赛提高组 题目等级 : 黄金 Gold题目描述 Description给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入&#xff0c;且保证每行一定为20个)。要求将此字母串分成k份(1<k<40)&#xff0c…

基于ASP.NET的新闻管理系统(三)代码展示

5.1.1栏目部分 增加栏目&#xff08;addLanMu.aspx&#xff09;&#xff1a; <html xmlns"http://www.w3.org/1999/xhtml"> <head runat"server"> <title></title> <link rel"stylesheet" type"text/css" …

洛谷-求同构数的个数-NOIP2013提高组复赛

题目描述 Description 所谓同构数是指这样的数&#xff0c;即它出现在它的平方数的右端。例如&#xff0c;5的平方是25 &#xff08;即5525&#xff09;&#xff0c;5是25右端的数&#xff0c;那么5就是同构数。又如&#xff0c;25的平方是625&#xff08;即2525625&#xff09…

plex linux 数据目录,shareplex日常维护文档

2017/07/25##SharePlex日常维护源(SRC)&#xff1a;192.168.1.101 db01目标(TGT):192.168.1.102 db02SRC:su - oraclesp_ctrlshowqstatusshow capture detailshow read detailshow log reverseshow config --查看当前使用参数文件list config --罗列出所有的参数文件(使用和未使…

ifconfig命令找不到_02. Linux命令之查看网络连接

1. 查看网络连接数和端口使用 netstat 命令查看网络连接情况netstat -anp参数&#xff1a;-a 显示所有选项-t (tcp)仅显示tcp相关选项-u (udp)仅显示udp相关选项-n 拒绝显示别名&#xff0c;能显示数字的全部转化成数字。-p 显示建立相关链接的程序名关键列解释:Proto 表示协议…

grep与egrep的区别

grep与egrep的区别&#xff1b; 在linux系统环境下&#xff0c;我们通常使用grep命令来过滤出需要的行而egrep确很少使用&#xff0c;他们的区别其实很简单&#xff0c;grep默认不支持正则表达式&#xff0c;egrep默认支持正则表达式&#xff0c;egrep 等于 grep -E 命令。转载…

python学习之模块(pip),列表生成式,模块操作mysql,excel

python基础 生成式 列表生成式  格式 [表达式 for 表达式 in 迭代对象 (可加判断)] 原&#xff1a; 1 res1 [] 2 for i in range(1,5): 3   res1.append(i) 4 print(res1) 改&#xff1a; 1 res2 [i for i in range(1,5)] 2 print(res2) 字典生成式  格式 {key:value f…

linux驱动read函数 copytouser,Linux驱动编程 step-by-step (五)主要的文件操作方法实现...

主要的文件操作方法实现文件操作函数有很多的操作接口&#xff0c;驱动编程需要实现这些接口&#xff0c;在用户编程时候系统调用时候会调用到这些操作structfile_operations {...loff_t (*llseek) (structfile *, loff_t,int);ssize_t (*read) (structfile *,char__user *,siz…

web开发中的 emmet 效率提升工具

web开发中的 emmet 效率提升工具 可以用来快速生成html 代码。 并且给各种IDE、编辑器提供了插件支持&#xff0c;sublime &#xff0c;webstorm等。 如在webstorm中安装好emmet之后&#xff0c;输入以下文本&#xff0c; #page>div.content[ng-model"user"]ul>…

python二维数组操作_Python二维数组应用与操作

课课家将会在这里为大家详细的介绍一下Python二维数组的相关应用方法以及定义方式&#xff0c;相信朋友们可以从中学习到更多的知识。 Python数组的应用中在实际编程中是一个非常重要的应用技术&#xff0c;作为Python编程人员来说&#xff0c;必须要熟练的掌握这方面的所有应用…

基于光线追踪的渲染中景深(Depth of field)效果的实现

图形学离线渲染中常用的透视摄像机模型时根据小孔成像的原理建立的&#xff0c;其实现通常是从向成像平面上发射ray&#xff0c;并把trace这条ray的结果作为成像平面上对应交点的采样结果。即&#xff1a; 图片来自《Fundamentals of Computer Graphics》 现实中的镜头拍摄的图…

ubuntu 安装 pycharm

添加源&#xff1a;$ sudo add-apt-repository ppa:mystic-mirage/pycharm安装收费的专业版&#xff1a;$ sudo apt update$ sudo apt install pycharm安装免费的社区版&#xff1a;$ sudo apt update$ sudo apt install pycharm-community卸载&#xff1a;$ sudo apt remove p…

带你制作百词斩单词表读写插件

上篇博文简单的介绍了一下Chrome插件&#xff0c;今天就与大家分享一下我做的这款有实际意义的插件吧。 做这款插件主要是用百词斩站点进行单词学习时&#xff0c;遇到的一点点闹心事儿。在单词表中不能听发音。也不能练习拼写。所以才忍无可忍的做了这么一款插件。自我感觉还是…

Linux7改运行级别,Centos7.0修改系统运行级别

首先翻译下ininttab里面的内容&#xff1a;#inittab不再使用时利用系统。#添加配置这会对你的系统没有影响。#Ctrl-Alt-Delete由/usr/lib系统/系统/ctrl-alt-del.target处理#系统使用的目标而不是运行级别。默认情况下&#xff0c;有两个主要目标&#xff1a;#multi-user.targe…

python测试字符串类型的函数_python-02 数据类型 字符串str

字符串str 一、字符串定义 概念&#xff1a;字符串是有序的 不可修改的&#xff0c;元素以引号包围的序列 引号类型&#xff1a;单引号 “”双引号 “ ””三引号 三单引号 print(python) print("python") print(python) print("""python""…

POJ2115 C Looooops(线性同余方程)

无符号k位数溢出就相当于mod 2k&#xff0c;然后设循环x次A等于B&#xff0c;就可以列出方程&#xff1a; $$ CxA \equiv B \pmod {2^k} $$ $$ Cx \equiv B-A \pmod {2^k} $$ 最后就用扩展欧几里得算法求出这个线性同余方程的最小非负整数解。 1 #include<cstdio>2 #incl…

工作测试博客

工作测试博客转载于:https://blog.51cto.com/12559670/1895000

iphone各机型参数对比_带你了解新款iPhone 12系列四款机型

2020年10月14日凌晨1&#xff1a;00&#xff0c;苹果召开新品发布会&#xff0c;发布了新款iPhone 12系列手机&#xff0c;“果粉”们期待已久的iPhone 12终于来了。iPhone 12系列手机共有四款机型&#xff0c;分别是iPhone 12 mini、iPhone 12、iPhone 12 Pro、iPhone 12 Pro …