Win10 Use VS2015 Debug MySQL5.7.24 Source Code

Win10 环境下 编译MySQL5.7.24 源码,综合网上材料我自己 写了一套,供参考,

特别是 C,C++ 因不一样的环境下 报错情况不一样,只要仔细阅读错误,在网上查询能找到解决方式。

一、软件准备: 
①Cmake : https://cmake.org/download/  (3.14版本也可)

②ActivePerl: ActivePerl 

③boost库: https://sourceforge.net/projects/boost/files/boost-binaries/1.59.0/ 下载exe文件安装到指定目录

④MySQL 源码: https://dev.mysql.com/downloads/mysql/

⑤bison 安装

⑥visual studio 2015 安装部署

     一定注意安装Win10 SDK,如下图: 

Win10 Use VS2015 Debug MySQL5.7.24 Source Code_第1张图片

Win10 Use VS2015 Debug MySQL5.7.24 Source Code_第2张图片

二、生成VS2015 MySQL工程

运行cmake-gui,选择需要编译的源码,和目的目录。 
Where is the source code : 选择解压后的源码 
Where to build to the binaryies : 选择目的目录,这里我们选择同目录下的debug目录。 


接下来需要配置boost库,点击Add Entry添加boost库配置项。 
Name: WITH_BOOST 
Value: 选择第一步中boost库的安装目录

接下来我们点击Configure, 选择目标VS版本, 点击Finish后,等待运行结束,需要一定时间。 


过程中会遇到以下的Warning,可以忽略。不影响最终debug。 

最后一部,点击Generate生成VS2015工程, 我们用VS2015打开MySQL.sln工程就可以了。

Win10 Use VS2015 Debug MySQL5.7.24 Source Code_第3张图片

VS2015调试MySQL 有几个细节要注意。 

1) 编码格式更改成 utf-8

ctype-czech.c
ctype-latin1.c
decimal.c
thr_mutex.c
ut0men.h
sql_locale.cc 编码格式更改成 utf-8
2) mysql.cc 文件中函数test_lc_time_sz 最后的DBUG_ASSERT(0); 需要改成DBUG_ASSERT(1);

 

3) 添加参数 --initialize --explicit_defaults_for_timestamp

先初始化MySQL数据库(否则会报mysql.user表不存在)
  VS2015调试开始调试前,用VS运行一下mysqld初始化一个默认的数据库实例。一定是debug mysqld子工程设置为启动工程。 

Win10 Use VS2015 Debug MySQL5.7.24 Source Code_第4张图片

 

ERROR:

不要直接看 error,要配合警告日志 一起看。
1)bison.exe: m4: Invalid argument

if i copy m4.exe to local folder and execute the above 
command it generates without any problem
2)因为sql_locale.cc 包含 其他国家语言,因操作系统原因不支持,把对应的部分进行删除

你可能感兴趣的:(My,Sql)