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。保险起见我们须要验证一下安装是否成功:

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 源代码编译与调试的更多相关文章

  1. MYSQL源代码编译的变动

    Mysql的安装,对于mysql不同版本号的mysql源代码编译方式不一样 5.6.2的版本号開始编译方式已经由 configure 变成了cmake方式 ,相关的新的 编译方式在mysql官网已经提 ...

  2. 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 ...

  3. 在windows下使用vs2013编译和调试mysql源代码

    1. 准备工作 1)OS:win10 + VS2013 2)mysql 源码(windows版):mysql-5.6.25.zip 3)perl tool:ActivePerl-5.16.3.1604 ...

  4. OSG+VS2010+win7环境搭建---OsgEarth编译

    OSG+VS2010+win7环境搭建---OsgEarth编译 转:http://www.cnblogs.com/hnfxs/p/3161261.html Win7下 osg+vs2010环境搭建 ...

  5. 转:在VS2010下编译、调试和生成mex文件

    最近帮人调了一个程序,是网上公开的代码,利用matlab与c++混合编程做三维模型关键点检测,发现他们可以用VS2010编译.调试.生成mexw32文件,因此觉得之前在Matlab上利用mex命令真是 ...

  6. win7,vs2010,asp.net项目中修改外部js文件,在调试时加载的还是旧文件

    win7,vs2010,asp.net项目中修改外部js文件,在调试时加载的还是旧文件 我杀过 w3wp.exe和asp.net_state的进程,重启 iis admin的服务,都还是不行. 只是把 ...

  7. Nginx+Php-fpm+MySQL+Redis源代码编译安装指南

    说明:本教程主要包括以下三个部分: 1. 源代码编译安装Nginx 2. 源代码编译安装php以及mysql.redis扩展模块 3. 配置虚拟主机 文中所涉及安装包程序均提供下载链接,欢迎使用 运行 ...

  8. SUSE Linux源代码编译安装MySQL 5.6

    这篇文章主要介绍了SUSE Linux下源代码编译方式安装MySQL 5.6过程分享,本文使用SUSE Linux Enterprise Server 10 SP3 (x86_64)系统,须要的朋友能 ...

  9. Win7 32bit下一个hadoop2.5.1源代码编译平台的搭建各种错误遇到

    从小白在安装hadoop困难和错误时遇到说起,同时,我们也希望能得到上帝的指示. 首先hadoop更新速度非常快,最新的是hadoop2.5.1,因此就介绍下在安装2.5.1时遇到的各种困难. 假设直 ...

随机推荐

  1. Git:与eclipse搭配使用

    Git:与eclipse搭配使用 1)工程初始化为本地库 工程 ——>右键 ——>Team ——Share Project 在该目录下创建了本地库 这里可以设置用户签名 2)Eclipse ...

  2. php安装redis扩展 windows

    官方php_redis.dll 找了很久,感谢热心的网友,这是php官方的 php_redis.dll http://windows.php.net/downloads/pecl/releases/r ...

  3. sql删除注意的问题

    老大骂你都是有原因的,基础要打好!!!! SQL关于删除的三个语句:DROP.TRUNCATE. DELETE 的区别. DROP test; 删除表test,并释放空间,将test表删除的一干二净 ...

  4. linux内核(五)虚拟文件系统

    虚拟文件系统(VFS)是linux内核和具体I/O设备之间的封装的一层共通访问接口,通过这层接口,linux内核可以以同一的方式访问各种I/O设备. 虚拟文件系统本身是linux内核的一部分,是纯软件 ...

  5. dubbo知识点理解

    1.分布式服务架构关键在于:用于提高业务复用及整合的 分布式服务框架(RPC) 是关键.注册中心是关键,提供业务复用和整合. 2.dubbo在消费方,获取服务列表后提供软负载均衡.dubbo在消费方提 ...

  6. Cocos2d-x 3.4 之 消灭星星 > 第三篇(终) <

    ***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...

  7. [React] Understanding setState in componentDidMount to Measure Elements Without Transient UI State

    In this lesson we'll explore using setState to synchronously update in componentDidMount. This allow ...

  8. [React] Work with HTML Canvas in React

    React's abstraction over the DOM means that it's not always obvious how to do DOM-related things, li ...

  9. sqlite学习笔记11:C语言中使用sqlite之删除记录

    最后一节,这里记录下怎样删除数据. 前面全部的代码都继承在这里了,在Ubuntu14.04和Mac10.9上亲測通过. #include <stdio.h> #include <st ...

  10. mybatis和hibernate的区别【转】

    第一章     Hibernate与MyBatisHibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分. Mybatis 是另外一种优秀的 ...