vs2015 连接 mysql 无法定位序数

经过坎坷,终于解决了这个问题,万事开头难
 
最近在做一个小课题,需要在windows上连接mysql,之前都是在linux上用,不需要过多配置,
直接包含mysql的头文件就可使用,但是在vs上确不是那么简单(其实很简单,只是要配置很多东西),
所以出现了一些问题,我就重点娓娓道来
 
1、安装mysql
 
  可以选安装包.msi,也可以选安装文件.msi更操作简单,基本只用鼠标;
安装文件则更加简洁,但是更多的需要键盘(建议安装)。不论安装哪个,想在cmd上使用mysql都需要在系统的环境变量中加入按装路径
网上有很多教程。
 
2、在vs上配置mysql(我的是vs2015)
    
在项目的属性页中->vc++目录 中的包含目录加入D:\mysql-8.0.15-winx64\include;
在库目录中加入D:\mysql-8.0.15-winx64\lib;在链接器->输入->附加依赖项中加入libmysql.lib,
这些是必填项,然后如果是安装的64位,需要把编译器也改成64位的,大概就可以编译通过。
 
到此网上也有很多文章。
 
当debug时就出现了错误,提示错误: 无法定位序数4684于动态链接库:ssleay32.dll上;无法定位序数4699于动态链接库:libmysql.dll上。
看了网上很多都没有适合我的解决方案,
我试过很多办法,有:注册.dll(regsvr32 ssleay32.dll...);    重新加载符号:工具->选项->调试->符号下;重新安装mysql;
更疯狂的,我(后来)卸载了vs2010,安装了2015,因为我以为可能是mysql是用c++11标准写的,可能需要更高版本的vs。这些办法都无济于事,
网上也没有对序数的解读,我试过这些方法后,我肯定一定是动态链接库有问题,我把需要的库(.dll和.lib)加到了项目文件和debug文件中,最开始只
是添加了libmysql.dll,ssleay32.dll,libmysql.lib,还是报同样的错,不知道你是否这是这样。又查了很多资料,被折磨了好几天,我认为还是应该确文件,
我把libeay32.dll也加入了工程文件和debug中,就可以调试出结果。
最终经过实验,确定只是debug文件中需要libeay32.dll,而且只需要libeay32.dll,不需要libmysql.dll,ssleay32.dll,libmysql.lib,不知道你是不是这样。
 
libeay32.dll:一般 libeay32.dll是OpenSSL所用动态链接库,一般与ssleay32.dll同时用到,通常情况下是在程序包里自带的。
 
解决:libeay32.dll加入debug文件(有.exe)中。
 
测试文件,你应该会写,这里就不多说,希望可以帮到你。
 
欢迎交流zmq_lqq@163.com
posted @ 2019-04-28 17:04  Daniel__Zhang  阅读(526)  评论(0编辑  收藏  举报