程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Win7+VS2010:mysql源碼編譯與調試

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

編輯:MySQL綜合教程

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


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 工程文件。事實上只要看到下面這個就可以了,各種not found也不要緊。如果采用Cmake 圖形界面,其實也差不多了。這裡不再贅述。

\

下一步我們就可以在VS2010中build solution了(對應生成解決方案),但為了盡可能減少警告或錯誤,我們首先需要對下述文件進行修改:

\

修改的方法很簡單,就是將這些文件以UTF-8(帶BOM頭的)格式保存。一般使用Nodepad++工具等。

最後一步就是找到{install}\mysql-5.6.19\sql\mysqld.cc中的test_lc_time_sz()函數,將其中的DBUG_ASSERT(0)改為DBUG_ASSERT(1)即可。

至此我們就完成了將源碼轉換成VS中工程文件的目的。之後我們就可以build solution了。如果沒有錯誤說明就已經沒有問題了,一些小的警告可能是因為C++編譯器比C編譯器嚴格的緣故。下一步我們開始調試。

3. 調試

然後將mysqld工程的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的目錄。

為了更好地為後來者指明方向,也為了今後便於自己查詢,故做了這個簡單的指南。也希望按照這篇文檔安裝的朋友遇到任何問題可以一起探討,然後不斷完善該文檔,以便後來者能夠因此而受用,同時營造一個負責人寫稿的氛圍。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved