程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL代碼如何在 Windows環境下編譯

MySQL代碼如何在 Windows環境下編譯

編輯:關於MYSQL數據庫

  寫這篇文章的目的只是告訴朋友們如何編譯MySQL代碼,或許有些人覺得從Windows平台編譯MySQL的代碼有些復雜,其實不然。如果您對本文中所提到的知識有任何疑問可以透過CSDN的MySQL板或者MySQL@CHINA支援論壇尋求幫助。這篇文章中所提到的東西沒有任何的創新性,只是對MySQL已有文檔的總結。

  一、為什麼要編譯代碼

  我不知道閱讀這篇文章的朋友你是否會注意MySQL手冊。MySQL在線手冊近期呈現一種“超越”趨勢,手冊中所描述的內容很大部分都是開發版本中才能找到的,我希望自己在閱讀的同時獲得試驗的機會。同時,我也和其他朋友一樣痛恨軟件中存在各種BUG,所以我要自己編譯代碼。當然,最開始我的初衷是希望借助Intel C++重新編譯MySQL的代碼獲取更好的性能。

  二、編譯代碼要如何准備

  這一部分包含下列要點,請務必注意。

  ■ 編譯器

  ■ Cygwin

  ■ 內存

  ■ 耐心

  編譯器,編譯MySQL代碼可以使用Cygwin下的GCC以及VC6.0,VC7.1。如果您使用Intel C++的話,我建議您配合VC6.0使用。不推薦使用VC 7.0的原因是其本身所存在的BUG(已經修復,但不公開提供),如果不裝補丁的話那麼會造成錯誤(關於inline優化可以暫時解決)。VC6.0請安裝SP4或SP5以及對應的處理器支持補丁包。

  Cygwin,MySQL的代碼絕大部分是在Linux編寫,所以很多實用工具以及配置腳本都是*nix風格,因此我們需要借助Cygwin這一 Unix 模擬環境。安裝時請選擇上 autoconf automake gnu make libtool bison perl。另外一點,MySQL的開發使用bk進行管理,而bk的客戶端也需要借助cygwin運行。如果只想編譯官方發布的Windows代碼,那麼可以不去關心這些。

  內存,編譯MySQL代碼非常消耗時間,至少我是這麼覺得。我建議有一個足夠大內存的機器,否則會讓你有種生不如死的感覺。

  耐心,第一次編譯MySQL尤其是開發中的代碼難免會遇到各種各樣的麻煩,嘗試去克服它們。沒有人第一次就應該成功,假設連這些小問題都無法解決那麼談何閱讀代碼?所以,多少給自己點信心,也多少有些耐心。

  三、獲取資源

  除了編譯器、cygwin之外我們還需要准備bk的客戶端,可以下載回來。當准備妥當工具後我們訪問 MySQL.bkbits.Net ,在這裡我們可以看到一個表格。這裡的表格每一項目都對應著一個mysql的項目,我們關心的是名為 mysql-4.1的項目,這是目前的主要工作重點 MySQL 4.1.x 版本的開發樹。

  獲取代碼:

  shell> bk clone bk://MySQL.bkbits.Net/mysql-4.1 MySQL-4.1

  更新代碼:

  shell> bk pull bk://MySQL.bkbits.Net/mysql-4.1 MySQL-4.1

  通過上邊兩個命令,我們就可以得到並隨時同步開發中的MySQL4.1.x代碼,第一次下載的話整個過程很慢大約有100多M的東西需要下載,然後還要解壓縮然後合成代碼。MySQL.bkbits.Net 列出的其他項目分別是:

  

  我們都可以使用同樣的方式獲取並隨時同步代碼。

  四、產生Windows代碼

  默認下載回來的代碼並不適合直接就用,把代碼copy到另外的目錄,然後使用BUILD目錄下的實用工具 compile-pentium-max 配置代碼,配置完成後使用 scripts 目錄下的實用工具make_win_src_distribution 產生一個適合Windows使用的代碼,這種方式得到的代碼如同官方下載所提供的代碼,最終成品是一個tar打包。執行這些實用工具,也就是shell 腳本需要在代碼樹的頂級目錄。

  五、編譯代碼

  當完成了上述工作之後編譯代碼應該是最為輕松的,直接用VC 6.0或者VC.Net 2003打開工程文件編譯就可以了。整個過程中並不需要其他的類庫進行輔助,也什麼難點。

  最後,祝福各位好運。另外也是最重要的。通過本文所述方式獲得的MySQL代碼遵循GPL協議,關於GPL的詳細信息請自行查閱。

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