在eclipse中配置MySQL原始碼環境(r12筆記第14天)
今天費了些周折,總算搭建好了MySQL原始碼的除錯環境,主要的目的就是想在看程式碼的時候有一些頭緒,讓這些開發技巧派上用場。不至於盲人摸象一般的拿著命令肉眼掃視,當然對於程式碼至於能不能啃下來,那是另外一回事了。
我來說說我的情況,Java開發還有一點基礎,所以以前的eclipse還算用得比較熟悉。大家知道InnoDB的原始碼是c,MySQL Server的是c++,這樣一套環境想除錯好,如果沒有這方面的平臺開發經驗其實還是有一點難度的。最後我還是決定使用eclipse來做,基於Windows平臺。
裡面趟了好幾個坑,讓我苦不堪言。
先要做幾件事情
1)下載MySQL原始碼
2)下載開發IDE eclipse
3) 編譯環境除錯
4) 配置程式碼除錯方式
下載MySQL原始碼
MySQL原始碼的下載,直接到www.mysql.com上面,選擇社群版,下載型別是source code,就可以看到下面的選項了。
比如說我選擇的是這個5.6.35的版本。最新的是5.7的,再早一些的是5.5版本的,之前的還真不好找了,得通過其他渠道了。
下載IDE eclipse
eclipse是個開發通用平臺的IDE,不過這個說法現在受到了IntelliJ IDEA的挑戰,目前來看挑戰成功,其中有一部分原因和新版本的一些介面的改進有關,不過相對來說eclipse這個工具Java開發者用得多一些,有些面試裡還會問裡面的幾個快捷鍵,一問就能問出來i用得怎麼樣。可能有的朋友就會問,eclipse是Java開發用得多一些,那和MySQL原始碼環境有什麼關係。難道在裡面用Java編輯器看c++程式碼,非也。
因為eclipse還是有c++版的插件的,可以在www.eclipse.org上面下載c++版本專屬的。
坑點1
但是下載之後,啟動eclipse失敗,錯誤是Failed to load the JNI shared library jvm.dll”,這個錯誤的大多數說法是和JDK的位數有關,比如32位,64位的相容性有關,當前的環境是一個JDK6的環境,看來孩不夠,我再下載個JDK7的試試。官網已經直接下載不了了,得通過mos下載。
配置好環境之後,收到的錯誤變樣了,我感覺被這個錯誤玩弄了。
一個IDE升級那麼新版本的JDK幹什麼,然後又這回來下載JDK8。官網下載的還是安裝版的。我就默默的看著下面的這個霸氣的硬廣,直到安裝成功。其實相對來說,我還是喜歡解壓版的。
eclipse可以啟動了,我建立了一個專案,我命名為mysql_5_6_35
這個時候環境還是基本空白的,先建立好再說。
簡單確認之後,就建立好了一個專案,新版本的exlipse就開始生成了工作目錄。啟動的介面還是不錯的。
編譯環境除錯
啟動了eclipse,建立了專案,我們可以從指定的目錄下匯入原始碼包裡的程式碼。當然不出所料,開啟程式碼之後,發現後臺開始報出了下面的錯誤。編譯環境就有有問題。
這個時候如果能配置好還是很有意思的,可以在windows上來安裝一下gcc,g++的環境,可以參考https://sourceforge.net/projects/mingw/這個網站,下載即可。
這個軟體的風格蠻有意思,下載安裝包的時候是下面的安裝進度,需要安裝哪些外掛,也基本是這樣的形式。
我們不光要gcc的,還要g++,在安裝好的軟體基礎上需要再下載新的包來安裝。最後會提示安裝成功。
在eclipse裡面還是需要做一些基本的配置的。根據紅色的框圖找到對應的選單,修改右下角的路徑,這個路徑就是我們剛剛安裝的軟體所在的目錄。
比如我安裝在了D盤,就配置成下面紅框的路徑。
這個時候還有一個問題,提示make沒有配置,這個問題可讓我有些摸不著頭腦。gcc都裝了,make檢查了也是安裝成功的,為什麼提示配置裡沒有呢。這裡有一個梗。我們需要把下面的檔案改個名字,其實它就是make
配置好環境,編譯就大體沒有問題了。
配置程式碼除錯方式
其實上面的環境配置也算是一個輔助,如果我們只是看看程式碼,其實也能接受,不過下面的這個功能用不了,檢視程式碼就會困難重重。比如我滑鼠點選到程式碼裡的某一個方法,根據呼叫關係我能夠很快定位到另一個檔案的呼叫函式,如此一來檢視邏輯就會清楚許多。
但是這個功能在eclipse竟然用不了,熟悉Java開發的同學應該都熟悉這個outline的功能,一個檔案裡面有哪些函式,哪些變數都可以一目瞭然,所以這種情況得改進,發現無法啟用的原因是我開啟的其中一個檔案的程式碼行數超過了5000行。預設eclipse的配置,超過5000行就啟用不了outline了,我們改一下紅框的配置即可。
配置好之後,重啟eclipse就沒問題了,可以看到右邊的outline資訊,求會清晰很多,點選程式碼也會有這種定位功能,這下看程式碼就方便多了。比如我們檢視InnoDB的程式碼,到storage/Innobase/handler/ha_innodb.cc這個檔案,這會是我學習innodb的一個關鍵介面檔案。
環境配置好了,剩下的事情才是重點的內容。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2136086/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Android開發:在Eclipse中配置Android環境AndroidEclipse
- 在windows下配置Eclipse + go環境WindowsEclipseGo
- Eclipse配置maven環境EclipseMaven
- 如何在Eclipse中配置安卓環境Eclipse安卓
- eclipse配置遠端執行環境Eclipse
- Windows 終端環境配置筆記Windows筆記
- 學習筆記-kali中配置python編寫環境筆記Python
- 在Ubuntu環境下安裝eclipseUbuntuEclipse
- 在eclipse中maven配置EclipseMaven
- TensorRT 筆記 - 在 Conda 虛擬環境中安裝筆記
- 筆記:環境 - Mac配置Host域名對映筆記Mac
- Xamarin 學習筆記 - 配置環境(Windows & iOS)筆記WindowsiOS
- Dubbo | Dubbo快速上手筆記 - 環境與配置筆記
- AI工程師的筆記本環境配置AI工程師筆記
- openEuler arm 環境原始碼編譯mysql 8.0.37原始碼編譯MySql
- JDK Tomcat MySQL環境配置JDKTomcatMySql
- openGauss資料庫JDBC環境連線配置(Eclipse)資料庫JDBCEclipse
- PHP環境LAMP/LNMP安裝與配置筆記PHPLAMPLNMP筆記
- 在 Visual Studio Code 中配置 Python Flask 環境PythonFlask
- Python GDAL庫在Anaconda環境中的配置Python
- 安卓開發環境配置之Windows+ADT+eclipse安卓開發環境WindowsEclipse
- Webpack4 學習筆記八 開發環境和生產環境配置Web筆記開發環境
- tensorflow學習筆記1——mac開發環境配置筆記Mac開發環境
- atom for mac配置c/c++開發環境筆記MacC++開發環境筆記
- 在eclipse中配置tomcat伺服器EclipseTomcat伺服器
- XXPAY環境部署筆記筆記
- 記一次LNMP環境配置過程,以及Linux命令筆記LNMPLinux筆記
- LINUX 環境 mysql to mysql OGG安裝配置(二)LinuxMySql
- 筆記, 配置阿里雲 Cumulo(ClojureScript) 臨時開發環境筆記阿里開發環境
- mac 配置mysql環境 Navicat 問題MacMySql
- Mac下配置PHP+MySql環境MacPHPMySql
- 記Ubuntu 16.04 下配置 Nginx、PHP7、MySQL環境,以及多域名配置UbuntuNginxPHPMySql
- 【配置】Mac 中 PyCharm 配置 Anaconda環境MacPyCharm
- OpenCV+QT5在Window下的環境配置記錄OpenCVQT
- RedHat 7.2配置LAMP環境下的redius+mysql+openvpn環境RedhatLAMPMySql
- 4.2.10 在Oracle重啟配置中管理環境變數Oracle變數
- Redis原始碼漂流記(二)-搭建Redis除錯環境Redis原始碼除錯
- app自動化測試環境配置:adb環境配置、monkey環境配置、appium環境配置大全APP
- MSP432安裝與環境配置(ccs) 學習筆記筆記