Win7+VS2010:mysql 源代码编译与调试
win7+vs2010源代码编译mysql
近期因为在实习,工作重点在于一些数据库的开发,为了更好的理解数据库的实现机制。眼下萌生了要研究一下mysql数据库源代码的想法。那么好吧,说干就干。首先我们须要实现对源代码的编译。这里我们选择win7+VS2010来实现,可是试了非常多次都失败了。这是我多次配置环境时遇到的问题,各种博客文章总是不太全然,或者说没有说明一些遇到的问题的解决方式,这可能跟详细的操作系统和环境有关。本文就说说我安装的情况。
1. 准备工作
(1)OS:win7 旗舰版 64位 + VS2010 (2013也试过了)
(2)mysql 源代码(windows版):mysql-5.6.19.zip (下来框选择source code)
(3)perl tool:ActivePerl-5.16.3.1604-MSWin32-x64-298023.msi
(4)Cmake:cmake-3.0.0-win32-x86 .exe
(5)Bison:bison-2.4.1-setup.exe
安装须要注意的几点。一般安装在根文件夹下。如C:\Cmake C:\GnuWin32 C:\Perl64 ,当然也能够是其它文件夹,一般路径不要出现中文字符,空格及特殊字符(这个貌似非常重要)。
详细安装见以下博客:Windows+VS2012环境下编译调试MySQL源代码
除了Bison安装须要注意意外。其它差点儿都是默认安装,这些细节最好遵守。以免兴许出错。Perl, Cmake, Bison安装完事之后,将他们安装文件夹下的bin所在路径加入环境变量中(windows环境变量加入)。如C:\Cmake\bin.好了至此基本ok。保险起见我们须要验证一下安装是否成功:
XGFEDC9QEWSJ48JV(E5.jpg)
XGFEDC9QEWSJ48JV(E5.jpg)
2. 開始安装
在随意你喜欢的盘里面创建一个用于安装的文件夹:如在D盘创建mysql然后将mysql-5.6.19.zip解压到该文件夹下。然后在cmd中切换到安装文件夹,此处即为D:\mysql\mysql-5.6.19。记({install}=D:\mysql\mysql-5.6.19),其下包括例如以下文件文件夹:
然后在{install}下运行下面命令:
|
>mkdir bld >cd bld >cmake .. |
这样你可看到类似例如以下的输出:
有一些错误。眼下也没有解决,但事实上这并不影响我们生成VS下MySQL.sln project文件。
事实上仅仅要看到以下这个就能够了,各种not found也不要紧。
假设採用Cmake 图形界面,事实上也几乎相同了。这里不再赘述。
下一步我们就能够在VS2010中build solution了(相应生成解决方式),但为了尽可能降低警告或错误。我们首先须要对下述文件进行改动:
改动的方法非常easy。就是将这些文件以UTF-8(带BOM头的)格式保存。
一般使用Nodepad++工具等。
最后一步就是找到{install}\mysql-5.6.19\sql\mysqld.cc中的test_lc_time_sz()函数,将当中的DBUG_ASSERT(0)改为DBUG_ASSERT(1)就可以。
至此我们就完毕了将源代码转换成VS中project文件的目的。之后我们就能够build solution了。假设没有错误说明就已经没有问题了,一些小的警告可能是由于C++编译器比C编译器严格的缘故。下一步我们開始调试。
3. 调试
然后将mysqldproject的Debug的:属性->调试->命令參数。设为--console,例如以下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlhb3lvdWppbmI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
然后启动实例,
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlhb3lvdWppbmI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
这样就能够看到以下的命令行界面:
cmd下进入到文件夹{install}\client。然后运行例如以下命令。就能够開始连接到刚刚开启的mysql服务了。这说明mysql服务已经启动。下一步就是启动mysql客服端,这里我是採用命令行的启动方式。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlhb3lvdWppbmI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
好了至此,我们基本完毕了在win7下实如今vs下编译调试mysql数据库的目的。以下就能够開始研究源代码了。
4 .新增问题
(1)vs2010:
LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 [F:\mysql\bld\CMakeFiles\CMakeTmp\cmTryCompileExec2556624813.vcxproj]
解决的方法:这是因为.NET中的cvtres.exe 与 VS2010中的有冲突。删掉VS2010中的cvtres.exe就能够了(文件夹F:\Install\VS2010\VC\bin)。注意install是你安装VS2010的文件夹。
为了更好地为后来者指明方向,也为了今后便于自己查询,故做了这个简单的指南。也希望依照这篇文档安装的朋友遇到不论什么问题可以一起探讨,然后不断完好该文档。以便后来者可以因此而受用,同一时候营造一个负责人写稿的氛围。
Win7+VS2010:mysql 源代码编译与调试的更多相关文章
- MYSQL源代码编译的变动
Mysql的安装,对于mysql不同版本号的mysql源代码编译方式不一样 5.6.2的版本号開始编译方式已经由 configure 变成了cmake方式 ,相关的新的 编译方式在mysql官网已经提 ...
- How to Build MySQL from Source Code on Windows & compile MySQL on win7+vs2010
Not counting obtaining the source code, and once you have the prerequisites satisfied, [Windows] use ...
- 在windows下使用vs2013编译和调试mysql源代码
1. 准备工作 1)OS:win10 + VS2013 2)mysql 源码(windows版):mysql-5.6.25.zip 3)perl tool:ActivePerl-5.16.3.1604 ...
- OSG+VS2010+win7环境搭建---OsgEarth编译
OSG+VS2010+win7环境搭建---OsgEarth编译 转:http://www.cnblogs.com/hnfxs/p/3161261.html Win7下 osg+vs2010环境搭建 ...
- 转:在VS2010下编译、调试和生成mex文件
最近帮人调了一个程序,是网上公开的代码,利用matlab与c++混合编程做三维模型关键点检测,发现他们可以用VS2010编译.调试.生成mexw32文件,因此觉得之前在Matlab上利用mex命令真是 ...
- win7,vs2010,asp.net项目中修改外部js文件,在调试时加载的还是旧文件
win7,vs2010,asp.net项目中修改外部js文件,在调试时加载的还是旧文件 我杀过 w3wp.exe和asp.net_state的进程,重启 iis admin的服务,都还是不行. 只是把 ...
- Nginx+Php-fpm+MySQL+Redis源代码编译安装指南
说明:本教程主要包括以下三个部分: 1. 源代码编译安装Nginx 2. 源代码编译安装php以及mysql.redis扩展模块 3. 配置虚拟主机 文中所涉及安装包程序均提供下载链接,欢迎使用 运行 ...
- SUSE Linux源代码编译安装MySQL 5.6
这篇文章主要介绍了SUSE Linux下源代码编译方式安装MySQL 5.6过程分享,本文使用SUSE Linux Enterprise Server 10 SP3 (x86_64)系统,须要的朋友能 ...
- Win7 32bit下一个hadoop2.5.1源代码编译平台的搭建各种错误遇到
从小白在安装hadoop困难和错误时遇到说起,同时,我们也希望能得到上帝的指示. 首先hadoop更新速度非常快,最新的是hadoop2.5.1,因此就介绍下在安装2.5.1时遇到的各种困难. 假设直 ...
随机推荐
- 【Paper Reading】Deep Supervised Hashing for fast Image Retrieval
what has been done: This paper proposed a novel Deep Supervised Hashing method to learn a compact si ...
- 四则运算2(最终版)java+jps+sqlServer
1,设计思想 (1)在java Resources里建立包和类 (2)在类里面写入方法,其中包括生成算式create()和删除算式delete()用来更新数据库中的题目 (3)Show()方法用来随机 ...
- [LeetCode] 350. 两个数组的交集 II intersection-of-two-arrays-ii(排序)
思路: 先找到set的交集,然后分别计算交集中的每个元素在两个原始数组中出现的最小次数. class Solution(object): def intersect(self, nums1, nums ...
- Ubuntu下使用crontab部署定时任务
Ubuntu下使用crontab部署定时任务 安装cron apt-get install cron 开启crontab日志 默认情况下的日志是没有开启的,我们需要找到 /etc/rsyslog.d/ ...
- HTML5常见的面试题,基础知识点
HTML5常见的面试题 一.HTML 常 ...
- 4.AND,OR
4.WHERE中使用AND,OR连接多个过滤条件 AND:并且的关系,要求条件同时满足 OR:或者的关系,要求条件满足某一个就可以 //查询10部门,基本工资大于2000的员工 ...
- Objective-c 中如何重写父类的初始化方法
在我们的日常开发中我们经常会定义一些自己的子类继承一些UIKit 库中的类,那我们应该如何重写的这些初化方法呢?那我们先看看这些类有哪些初初化方法吧.(这里就用UIView为例) - (id)init ...
- GIT GUI简易教程
GIT GUI简易教程 前言 之前一直想一篇这样的东西,因为最初接触时,我也认真看了廖雪峰的教程,但是似乎我觉得讲得有点多,而且还是会给我带来很多多余且重复的操作负担,所以我希望能压缩一下它在我工作中 ...
- Recovering unassigned shards on elasticsearch 2.x——副本shard可以设置replica为0在设置回来
Recovering unassigned shards on elasticsearch 2.x 摘自:https://z0z0.me/recovering-unassigned-shards-on ...
- 细述 Java垃圾回收机制→Types of Java Garbage Collectors
细述 Java垃圾回收机制→Types of Java Garbage Collectors 转自:https://segmentfault.com/a/1190000006214497 本文非原创, ...