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


    1. 准备工作

    1OSwin10 + VS2013

    2mysql 源码(windows版):mysql-5.6.25.zip 

    3perl toolActivePerl-5.16.3.1604-MSWin32-x64-298023.msi

    4Cmakecmake-3.5.0-win32-x86 .exe

    5Bisonbison-2.4.1-setup.exe

         软件列表:

         

    安装需要注意的几点,一般安装在根目录下,如C:Cmake C:GnuWin32 C:Perl64 ,当然也可以是其他目录,一般路径不要出现中文字符,空格及特殊字符。

         Perl, Cmake, Bison安装完事之后,将他们安装目录下的bin所在路径加入环境变量中(windows环境变量添加),如C:Cmakein

         

         保险起见我们需要验证一下安装是否成功:

        

    2. 开始安装

    在任意你喜欢的盘里面创建一个用于安装的目录:如在D盘创建mysql然后将mysql-5.6.25.zip 解压到该目录下,然后在cmd中切换到安装目录,此处即为D:mysqlmysql-5.6.25,记({install}=D:mysqlmysql-5.6.25,其下包含如下文件目录:

         

    然后在{install}下执行以下命令:

    >mkdir bld
    >cd bld
    >cmake ..

     这样你可看到类似如下的输出:

         有一些错误,目前也没有解决,但其实这并不影响我们生成VSMySQL.sln 工程文件。事实上只要看到下面这个就可以了,各种not found也不要紧。如果采用Cmake 图形界面,其实也差不多了。这里不再赘述。

         下一步我们就可以在VS2013build solution了(对应生成解决方案),但为了尽可能减少警告或错误,我们首先需要对下述文件进行修改:

                源码目录stringsctype-czech.c

    源码目录stringsctype-latin1.c

    源码目录stringsdecimal.c

    源码目录mysys hr_mutex.c

    源码目录storageinnobaseincludeut0mem.h

    源码目录sqlsql_locale.cc

    修改的方法很简单,就是将这些文件以UTF-8(带BOM头的)格式保存。一般使用Nodepad++工具等。

    最后一步就是找到{install}mysql-5.6.25sqlmysqld.cc中的test_lc_time_sz()函数,将其中的DBUG_ASSERT(0)改为DBUG_ASSERT(1)即可。

    至此我们就完成了将源码转换成VS中工程文件的目的。之后我们就可以build solution了。如果没有错误说明就已经没有问题了,一些小的警告可能是因为C++编译器比C编译器严格的缘故。下一步我们开始调试。

    3. 调试

    然后将mysqld工程的Debug:属性->调试->命令参数,设为--console  --defaults-extra-file=C:Windowsmy.ini如下:

          

    然后启动实例

          

    可以打断点,进入程序跟踪调试。

          

    也可以在程序生成的目录下,在命令行状态下运行,进入调试生成目录:

    mysqld --debug  --standalone

         

    运行调试客户端

          

    4.注意事项

         1.mysql默认查找配置文件的路径:程序首先会分别收集windows系统目录、C:根目录、执行码所在的父目录,如果配置了环境变量MYSQL_HOME,这个目录也会被搜集,然后在这些目录下进行查找my.ini文件

         c盘的根目录下放了一个默认的windows下的my.ini文件

        

         基目录为e:mysql,数据目录为e:mysqldata

         

       2.mysql的基目录和数据目录,数据目录要有mysql基本的系统数据库文件

         

    参考资料:

    1.Win7+VS2010mysql源码编译与调试 

         http://www.2cto.com/database/201407/316681.html

    2.Windows+VS2012环境下编译调试MySQL源码

         http://www.voidcn.com/blog/a809146548/article/p-4851777.html

  • 相关阅读:
    工作中收集的工具类函数库
    前端常用应用网站
    angularJs select ng-selected默认选中遇到的坑
    超好用的input模糊搜索 jq模糊搜索,
    angular,,以及深度拷贝问题;JSON.parse,JSON.stringify灵活运用
    vue-router解析,vue-router原理解析
    共享一个PowerDesigner 16.5
    在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。
    C#的Class的几个修饰符
    IntelliTrace调试
  • 原文地址:https://www.cnblogs.com/suixinpeng/p/5531570.html
Copyright © 2020-2023  润新知