最近由於在實習,工作重點在於一些資料庫的開發,為了更好的理解資料庫的實現機制,目前萌生了要研究一下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 已退出...