Home >Database >Mysql Tutorial >mysql在windows下的编译_MySQL

mysql在windows下的编译_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-01 13:52:03941browse

今天摆弄了半天,终于把mysql在windows上编译通过了,特别记录下来,分享给大家。

我下载的是mysql-5.5.13,下载后,打开根目录下面的INSTALL-WIN-SOURCE文件,里面让我访问网址:

http://dev.mysql.com/doc/refman/5.1/en/windows-source-build.html,按照上面的做。

我就按照网页上说的来,发现怎么搞也搞不定,一开始有一步:

cmake win/configure.js –XXX,怎么也过不去,后来发现,就没有win/configure.js这个文件,在看上面的网址,其实说的是mysql-5.1.xx版的方法,我去,竟然压缩包里的文档没有更新,后来在网上找了找,发现了5.5.xx版的文档,就按照这个文档来呗。

先下载cmake和bison的windows版本,cmake直接双击安装,一路next,中间有一步可以选择添加到环境变量里面, bison的话默认安装目录在program files下面,这个要改掉,改成中间一个没有括号的路径,我直接安装到C盘下面了,就是C:/GnuWin32,然后将C:/GnuWin32/bin添加到环境变量里。

然后进入mysql的根目录下,输入cmake . -G "Visual Studio 9 2008",正常的话会有XXX done什么的。

成功的话会有MySQL.sln和一大堆.vcproj文件,打开MySQL.sln,就可以看到整个解决方案了,在编译之前,建议打开sql/sql_locale.cc文件,将其用utf-8格式再保存一遍,不然编译过程当中会有大量错误。然后就可以生成解决方案了,不过我在生成过程当中会老是冒出来链接器停止工作什么什么的,最后编完了链接出了大量问题,会出现fatal error LNK1000: Internal error during IncrBuildImage这种错误,我出现了23个,什么都没改,又编了一遍,========== 生成: 成功26 个,失败0 个,最新62 个,跳过10 个==========,貌似没有错误了,不知道编译器是怎么搞的。

除了用sln编译外,也可以用命令行编译,根据文档,编译命令为:

"C:/Program Files/Microsoft Visual Studio9.0/Common7/IDE/devenv.exe" MySQL.sln /build RelWithDebInfo,

编译安装文件的命令为:

"C:/Program Files/Microsoft Visual Studio9.0/Common7/IDE/devenv.exe" MySQL.sln /build RelWithDebInfo /projectinitial_database

"C:/Program Files/Microsoft Visual Studio9.0/Common7/IDE/devenv.exe" MySQL.sln /build RelWithDebInfo /projectpackage

如果没有任何问题,根据文档,这个命令会在根目录下生成mysql-5.5.13-win32.zip这个文件。

清理的命令为

"C:/Program Files/Microsoft Visual Studio9.0/Common7/IDE/devenv.exe" MySQL.sln /clean

Del CMakeCache.txt

如果用sln生成的过程当中initial_database这个项目有错误的话,我的解决方法是把sql/locale.cc下的my_locales结构体下的除了第一个&my_locale_en_US,和最后一NULL之外其他的值全部删掉(或注释掉),我这么干了貌似没有什么副作用,主要在于汉字和日文这些好像识别起来有点问题。

如果能够在根目录下生成zip文件,证明整个操作没有问题,zip里的bin文件夹里是最全的程序包,调试的话可以执行里面的mysqld-debug.exe,用下面的参数:

mysqld-debug --debug –-standalone。

会出现带有窗口的mysql,正常情况下是没有的,只能用服务方式启动。

这下可以通过vs附加到进程的方式调试了,计划下一次写一下怎么在windows下调试mysql的。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn