Win7 VS2010 mysql原始碼編譯與除錯

2021-12-30 03:57:45 字數 2750 閱讀 9749

最近由於在實習,工作重點在於一些資料庫的開發,為了更好的理解資料庫的實現機制,目前萌生了要研究一下mysql資料庫原始碼的想法。那麼好吧,說幹就幹,首先我們需要實現對原始碼的編譯,這裡我們選擇win7+vs2010來實現,但是試了很多次都失敗了。這是我多次配置環境時遇到的問題,各種部落格文章總是不太完全,或者說沒有說明一些遇到的問題的解決方案,這可能跟具體的作業系統和環境有關。本文就說說我安裝的情況。

(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。保險起見我們需要驗證一下安裝是否成功:

在任意你喜歡的盤裡面建立乙個用於安裝的目錄:如在d盤建立mysql然後將mysql-5.6.19.zip解壓到該目錄下,然後在cmd中切換到安裝目錄,此處即為d:\mysql\mysql-5.6.19,記(=d:\mysql\mysql-5.6.19),其下包含如下檔案目錄:

然後在下執行以下命令:

>mkdir bld

>cd bld

>cmake ..

這樣你可看到類似如下的輸出:

有一些錯誤,目前也沒有解決,但其實這並不影響我們生成vs下mysql.sln 工程檔案。事實上只要看到下面這個就可以了,各種not found也不要緊。如果採用cmake 圖形介面,其實也差不多了。這裡不再贅述。

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

修改的方法很簡單,就是將這些檔案以utf-8(帶bom頭的)格式儲存。一般使用nodepad++工具等。

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

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

然後將mysqld工程的debug的:屬性->除錯->命令引數,設為--console,如下:

然後啟動例項,

這樣就可以看到下面的命令列介面:

cmd下進入到目錄\client,然後執行如下命令,就可以開始連線到剛剛開啟的mysql服務了。這說明mysql服務已經啟動,下一步就是啟動mysql客服端,這裡我是採用命令列的啟動方式。

好了至此,我們基本完成了在win7下實現在vs下編譯除錯mysql資料庫的目的,下面就可以開始研究原始碼了。

(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 原始碼編譯與除錯

最近由於在實習,工作重點在於一些資料庫的開發,為了更好的理解資料庫的實現機制,目前萌生了要研究一下mysql資料庫原始碼的想法。那麼好吧,說幹就幹,首先我們需要實現對原始碼的編譯,這裡我們選擇win7 vs2010來實現,但是試了很多次都失敗了。這是我多次配置環境時遇到的問題,各種部落格文章總是不太...

VS2010 WIN7 單步除錯 MySQL

安裝perl tool activeperl 5.16.3.1604 mswin32 x64 298023.msi 安裝cmake cmake 3.0.0 win32 x86 exe 安裝bison bison 2.4.1 setup.exe 安裝需要注意的幾點,一般安裝在根目錄下,如c cmake...

vs2010 win7 win8 編譯時報許可權錯誤

1 c program files msbuild microsoft.cpp v4.0 microsoft.cppcommon.targets 732,5 warning msb3075 命令 regsvr32 s d project cleandir debug cleandir.dll 已退出...