1. 程式人生 > >Win7+VS2010:mysql 源代碼編譯與調試

Win7+VS2010:mysql 源代碼編譯與調試

tracking load soft vs2012 height lin 下一步 細節 cor

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,例如以下:

技術分享

然後啟動實例,

技術分享

這樣就能夠看到以下的命令行界面:

技術分享

cmd下進入到文件夾{install}\client。然後運行例如以下命令。就能夠開始連接到剛剛開啟的mysql服務了。這說明mysql服務已經啟動。下一步就是啟動mysql客服端,這裏我是採用命令行的啟動方式。

技術分享
好了至此,我們基本完畢了在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 源代碼編譯與調試