在eclipse中配置MySQL源码环境(r12笔记第14天)

  1. 云栖社区>
  2. 博客>
  3. 正文

在eclipse中配置MySQL源码环境(r12笔记第14天)

jeanron100 2017-03-25 23:38:48 浏览894
展开阅读全文

今天费了些周折,总算搭建好了MySQL源码的调试环境,主要的目的就是想在看代码的时候有一些头绪,让这些开发技巧派上用场。不至于盲人摸象一般的拿着命令肉眼扫视,当然对于代码至于能不能啃下来,那是另外一回事了。

我来说说我的情况,Java开发还有一点基础,所以以前的eclipse还算用得比较熟悉。大家知道InnoDB的源码是c,MySQL Server的是c++,这样一套环境想调试好,如果没有这方面的平台开发经验其实还是有一点难度的。最后我还是决定使用eclipse来做,基于Windows平台。

里面趟了好几个坑,让我苦不堪言。

先要做几件事情

1)下载MySQL源码

2)下载开发IDE eclipse

3) 编译环境调试

4) 配置代码调试方式

下载MySQL源码

MySQL源码的下载,直接到www.mysql.com上面,选择社区版,下载类型是source code,就可以看到下面的选项了。

img_876ea52946c7a9c06bf6b2ccf05e1315.jpe

比如说我选择的是这个5.6.35的版本。最新的是5.7的,再早一些的是5.5版本的,之前的还真不好找了,得通过其他渠道了。

下载IDE eclipse

eclipse是个开发通用平台的IDE,不过这个说法现在受到了IntelliJ IDEA的挑战,目前来看挑战成功,其中有一部分原因和新版本的一些界面的改进有关,不过相对来说eclipse这个工具Java开发者用得多一些,有些面试里还会问里面的几个快捷键,一问就能问出来i用得怎么样。可能有的朋友就会问,eclipse是Java开发用得多一些,那和MySQL源码环境有什么关系。难道在里面用Java编辑器看c++代码,非也。

因为eclipse还是有c++版的插件的,可以在www.eclipse.org上面下载c++版本专属的。

坑点1

但是下载之后,启动eclipse失败,错误是Failed to load the JNI shared library jvm.dll”,这个错误的大多数说法是和JDK的位数有关,比如32位,64位的兼容性有关,当前的环境是一个JDK6的环境,看来孩不够,我再下载个JDK7的试试。官网已经直接下载不了了,得通过mos下载。

配置好环境之后,收到的错误变样了,我感觉被这个错误玩弄了。

img_daa78ef463dc3ddca52da294b23edd38.png

一个IDE升级那么新版本的JDK干什么,然后又这回来下载JDK8。官网下载的还是安装版的。我就默默的看着下面的这个霸气的硬广,直到安装成功。其实相对来说,我还是喜欢解压版的。

img_9fa421d416ce98c6a593440c05dbe79e.jpe

eclipse可以启动了,我创建了一个项目,我命名为mysql_5_6_35

img_3cc18eccf137b5a8422a2be0f28e0256.jpe

这个时候环境还是基本空白的,先创建好再说。

img_5625e30b9ce4a3e46400d861ebbb7e08.jpe

简单确认之后,就创建好了一个项目,新版本的exlipse就开始生成了工作目录。启动的界面还是不错的。

img_58d2ef8ee063448435bb91081f66681c.jpe

编译环境调试

启动了eclipse,创建了项目,我们可以从指定的目录下导入源码包里的代码。当然不出所料,打开代码之后,发现后台开始报出了下面的错误。编译环境就有有问题。

img_34068dab36b0dee2087bf8549d473dda.png

这个时候如果能配置好还是很有意思的,可以在windows上来安装一下gcc,g++的环境,可以参考https://sourceforge.net/projects/mingw/这个网站,下载即可。

img_98eb6e64b48793c2027d1d6e883ae283.png

这个软件的风格蛮有意思,下载安装包的时候是下面的安装进度,需要安装哪些插件,也基本是这样的形式。

img_076fd3b0fe562ae199ba973c9954dd41.png

我们不光要gcc的,还要g++,在安装好的软件基础上需要再下载新的包来安装。最后会提示安装成功。

img_f879b1cc8c00b36cd6822fea6983c320.jpe

在eclipse里面还是需要做一些基本的配置的。根据红色的框图找到对应的菜单,修改右下角的路径,这个路径就是我们刚刚安装的软件所在的目录。

img_d847988e04d783914802679e82ffe6d8.jpe

比如我安装在了D盘,就配置成下面红框的路径。

img_0eebd9b589422e4d2fe5b83d25ed5fda.png

这个时候还有一个问题,提示make没有配置,这个问题可让我有些摸不着头脑。gcc都装了,make检查了也是安装成功的,为什么提示配置里没有呢。这里有一个梗。我们需要把下面的文件改个名字,其实它就是make

img_dd6f9726006155413d5bb07c9cfe13e2.jpe

配置好环境,编译就大体没有问题了。

img_9a7c5333064ca26678e5f0084b5975b8.png

配置代码调试方式

其实上面的环境配置也算是一个辅助,如果我们只是看看代码,其实也能接受,不过下面的这个功能用不了,查看代码就会困难重重。比如我鼠标点击到代码里的某一个方法,根据调用关系我能够很快定位到另一个文件的调用函数,如此一来查看逻辑就会清楚许多。

但是这个功能在eclipse竟然用不了,熟悉Java开发的同学应该都熟悉这个outline的功能,一个文件里面有哪些函数,哪些变量都可以一目了然,所以这种情况得改进,发现无法启用的原因是我打开的其中一个文件的代码行数超过了5000行。默认eclipse的配置,超过5000行就启用不了outline了,我们改一下红框的配置即可。

img_d6d961ea82655a980cc0845f54f827c5.jpe

配置好之后,重启eclipse就没问题了,可以看到右边的outline信息,求会清晰很多,点击代码也会有这种定位功能,这下看代码就方便多了。比如我们查看InnoDB的代码,到storage/Innobase/handler/ha_innodb.cc这个文件,这会是我学习innodb的一个关键接口文件。

img_d623e9d1ca61e3b915ef58889a7524c5.jpe

环境配置好了,剩下的事情才是重点的内容。

网友评论

登录后评论
0/500
评论
jeanron100
+ 关注