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. Layui父页面向子页面传参

    废话不多说!直接上代码! 父窗体js $('.mytable').on('click', '.editRow', function () { var table = $('#table_id_exam ...

  2. PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能

    XHTML 首先将jquery库和相关ui插件,以及css导入.一共引用三个 jquery ,jquery_ui.js,jquery-ui.css 三个文件,不同版本小哥可能稍有差异(最后注意ajax ...

  3. 2015 Multi-University Training Contest 1 hdu 5296 Annoying problem

    Annoying problem Time Limit: 16000/8000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others ...

  4. 2015 Multi-University Training Contest 3 hdu 5318 The Goddess Of The Moon

    The Goddess Of The Moon Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/ ...

  5. java 日期和字符串互转,依据当天整天时间 得到当天最后一秒的日期时间

    java 日期和字符串互转.依据当天整天时间   得到当天最后一秒的日期时间 package com.hi; import java.text.DateFormat; import java.text ...

  6. (三)Fegin声明式服务调用

    上一篇,讲了SpringClound中的消费者采用Ribbon+Rest来实现,这回我们用组件Feign来实现服务的消费者,Fegin中也是默认集成了Ribbon的;和Eureka结合也能实现负载均衡 ...

  7. python 3.x 学习笔记9 (面向对象)

    1.面向对象 面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物. 2.类(class): 一个类即是对一类拥有相同属性的对象的抽象.蓝图.原型.在类中定义了这些对象的都 ...

  8. 解码URLDecode和编码URLEnCode

    在前台往后台传递参数的时候,在前台进行编码,在后台接收参数的时候,用Decode进行解码: 如果url中包含特殊字符如:&.html标签 <tr><td>等导致url无 ...

  9. jq 鼠标点击跳转页面后 改变点击菜单的样式代码

    点击菜单跳转页面,然而跳转后的页面字体并没有加粗用如下代码 <div class="bg01 menu"> <img class="img01" ...

  10. SpringBoot学习笔记(8)-----SpringBoot文件上传

    直接上代码,上传文件的前端页面: <body> <form action="/index/upload" enctype="multipart/form ...