將 Visual Studio C 和 C++ 項目遷移到 Eclipse CDT

將 Visual Studio C 和 C++ 項目遷移到 Eclipse CDT
將 Microsoft VS 項目遷移到 Eclipse C/C++ Development Toolkit 的詳盡指南
 
 
  文檔選項
   將此頁作爲電子郵件發送
 
 

拓展 Tomcat 應用
  下載 IBM 開源 J2EE 應用服務器 WAS CE 新版本 V1.1
 
 

 
級別: 中級

Priyadarshini Sampath ([email protected]), 高級軟件工程師, IBM India
Ramakrishnan Kannan ([email protected]), 高級軟件工程師, IBM India
Karthik Subbian ([email protected]), 高級軟件工程師, IBM India


2007 年 1 月 29 日

Windows® 上的大多數 C/C++ 項目都是使用 Microsoft® Visual Studio® 開發的,因此研究這些項目到 Eclipse 這種開放源碼 IDE 的遷移是很有必要的。本文簡明扼要地介紹了將 Microsoft Visual Studio C/C++(MSVC)項目遷移到 Eclipse 的步驟,比較和對照了 MSVC 和 Eclipse CDT 的優點。
 獲得更多 Eclipse 資源 —— Eclipse 項目資源中心

想獲得更多 Eclipse 相關資源嗎?developerWorks 中國網站上有非常多的關於 Eclipse 項目的文章、教程和技巧,通過“Eclipse 項目資源中心”,您可以非常快捷地找到所有關於 Eclipse 項目的技術參考資源。

如果您剛剛接觸 Eclipse 項目,您可以從項目資源中心的 “現在開始學習 Eclipse”欄目 瞭解最新版本 Eclipse 的鏈接、有關 IBM 參與 Eclipse 的信息以及一些最有趣的 Eclipse 項目的指南。如果您已經有一定 Eclipse 基礎,您也可以從 “推薦 Eclipse 閱讀清單”欄目 找到讓您技藝更進一步的參考資源。

點擊進入 “Eclipse 項目資源中心”
 
 
Eclipse Platform 是一種開放源碼工具,協助您在單獨一個開發環境內將項目從設計階段轉到測試階段,而無需爲各階段使用不同的工具。開發 Eclipse 的目的在於爲工具開發社區提供幫助,使人們能集中精力處理工具的核心功能性,而不是 IDE 自身。這是可行的,因爲 Eclipse 程序模型支持被稱作插件的軟件構建塊。

最初,Eclipse 是作爲 Java 編程 IDE 起步的,而發展只是時間問題。由於其可擴展性,它被推崇用來爲其他編程語言開發應用程序,比如 COBOL 和 C/C++。

本文主要關注 C 和 C++ 應用程序。以在 Windows 上部署爲目的的大多數 C 和 C++ 項目都是使用 Microsoft Visual Studio 開發的。本文介紹了將 Microsoft Visual Studio C/C++(MSVC)項目遷移到 Eclipse 的詳盡流程。在此過程中,我們將比較和對照使用 MSVC 和 Eclipse CDT 的優點。

先決條件

Eclipse Platform
從 Eclipse Foundation 下載 Eclipse。
Eclipse C++ Development Toolkit(CDT)
獲取用於 C 和 C++ 開發的 Eclipse 插件(請參閱 關於 CDT)。
Visual Studio/Platform SDK
這應當是您當前在 Windows 中爲 C/C++ 應用程序使用的開發 IDE。最新的 Platform SDK(MSVC Express)版本中出現了一些變化,限制您僅可採用通過 nmake makefile 構建可執行程序的傳統方法。本文假定您通過 makefile 構建可執行程序。務必確定您使用的版本。
參考資料 中提供了下載上述各工具的鏈接。

 

 


 回頁首
 

 

比較 Visual Studio 和 Eclipse

Microsoft Visual Studio 具有悠久的歷史,並廣泛被 Windows 應用程序開發人員所採用。另外,它在 C 和 C++ Microsoft Windows 應用程序開發領域也處於領先地位。對比起來,Eclipse 相對較新,目前在開發人員社區中十分盛行。Eclipse CDT 被設計用來滿足大多數 OS 平臺(比如 Linux®)開發商的要求,並十分依賴於 gcc 編譯器和其他開放源碼工具。

比較 Eclipse 和 Visual Studio 有很多途徑,可以比較用戶界面(UI)、體系結構、成本、可管理性和其他諸多標準。由於本文着眼於 C 和 C++ 開發,所以我們將針對 Windows 中的 C 和 C++ 應用程序開發,來比較和對照這兩種工具的實力。


Windows 上的 C/C++ 開發對比
 Microsoft Visual Studio C/C++ Eclipse CDT
許可 專有 開放源碼
支持的編程語言 限於 C/C++ 和 Microsoft 支持的編程語言 同類的不同編程語言(COBOL、Java 編程語言和其他),以及 C/C++
支持的 SDLC 階段 只有編碼 設計、編碼、配置管理、測試等
調試 完全調試支持 無調試支持;調試支持僅對除 Windows 以外平臺上的經 gcc 編譯的 C 代碼可用。必須具備 Microsoft Debugging Tools for Windows
資源編輯器 通用資源編輯器 無資源編輯器
測試 Visual Studio 無測試工具; 需用第三方工具 可用 CppUnit(更多信息請參閱 參考資料)
MFC 編程 針對 MFC 應用程序(嚮導、代碼模板等)的開發支持 不支持
插件工具開發 Visual Studio 6 不支持任何插入式軟件組件 基於插件的體系結構
特定於 Microsoft Windows 的工具 Spy++、錯誤查找、ActiveX Container 及其他 沒有特定於 Windows 平臺的工具


 


 回頁首
 

 

關於 CDT

Eclipse C++ Development Toolkit(CDT)是 Eclipse 平臺的一種插件形式的擴展。所有平臺均可下載此插件。此插件的開源特性及友好的用戶界面使其不僅在 Linux 開發人員中,而且在其他平臺上的 C++ 開發人員中都甚爲流行。CDT 和 Web Tools 插件是兩個最流行的 Eclipse 插件。在使用 CDT 的開發人員中,大約有三分之二都是 Windows 用戶。

CDT 具有子組件或插件,它們是 CDT 社區中的獨立項目。其中最重要的是 CDT 主插件,它提供核心 CDT 功能。CDT Debug UI 爲調試工具編輯器和視圖提供 UI 功能。CDT UI 插件提供與 UI 有關的特性、視圖、編輯器、嚮導等。CDT Debug 提供核心調試功能。CDT Feature 提供 CDT Feature 組件。CDT 核心包括 Core Model、CDOM 和其他核心組件。CDT Launch 爲啓動外部可執行文件和工具提供啓動機制。CDT Debug MI 是針對兼容 MI 的調試器的應用程序連接器。

CDT 編輯器具有多種特性,這些特性使其很受歡迎。比如, 語法高亮和代碼協助使軟件開發既快捷又容易。語法高亮是可配置的,還可根據您的個人喜好使之個性化。代碼協助是代碼完成功能,它與 Visual Studio 裏的此項功能相似。自定義的代碼模板可添加到代碼協助所使用的插件中。

我們將在以下部分中學習如何有效使用 CDT 把 Visual Studio 項目遷移到 Eclipse CDT Workbench。

 

 


 回頁首
 

 

從 VS 到 Eclipse

在這個部分,我們將遷移一個用 Microsoft Visual C++ 6 開發的簡易 HelloWorld Win32 應用程序。

如果您沒有現成的 Win32 應用程序,就用 Visual Studio 創建一個 HelloWorld Win32 應用程序。從 Visual Studio 的 Projects > Export Makefile 菜單中創建一個 makefile。

圖 1. 用 Visual Studio 創建一個 HelloWorld Win32 應用程序
 


啓動 Eclipse,打開 C/C++ 視圖。
選擇 Window > Open Perspective > Other

圖 2a. 打開 C/C++ 視圖
 


選擇 C/C++ 視圖


圖 2b. 選擇 C/C++ 視圖
 

注意:只有在安裝 CDT 插件後,C/C++ 視圖纔會在 Select Perspective 對話框中列出。
通過 File > New > Standard Make C++ Project 創建一個標準的 C/C++ Make 項目。在出現的 New Project 對話框中的 Project Name 編輯框中將此項目命名爲 HelloEclipse,單擊 Finish。

圖 3a. 創建 HelloWorld
 

 

圖 3b. 將項目命名爲 HelloEclipse
 


現在我們要把用 Visual Studio 創建的文件導入 Eclipse 中。選擇 File > Import。在 Import 對話框中選擇 Filesystem 後單擊 Next。如果新創建的項目不可見,選擇 Window > ShowView > C/C++ project。

圖 4. 導入 HelloWorld Visual Studio 項目文件
 


瀏覽到新創建的 Visual Studio 項目所在的目錄,選擇要導入的 *.c*、*.h*、*.rc、*.ico 和 .mak 文件後單擊 Finish。

圖 5. 導入 *.c*、*.h*、*.rc、*.ico 和 .mak 文件
 


環境變量的添加

圖 6. 添加環境變量
 


右鍵單擊此項目,選擇 Properties。在 Properties for HelloEclipse 對話框中,選擇左側的 C/C++ Make Project,添加 INCLUDE 和 LIB 環境變量,使其指向 Visual Studio 的 include 和 lib 路徑。如果您使用的是 SDK 平臺,則指向 SDK 的 include 和 lib 目錄。

圖 7. 使 Visual Studio include 和 lib 路徑指向正確的方向
 


打開從 Visual Studio 項目中導入的 .mak 文件,做出以下更改:
將配置(CFG)由 Debug 更改爲 Release,以便得到一個應用程序的發佈版本。它與 CFG=HelloWin - Win32 Release 相似。

圖 8a. 將配置從 Debug 更改爲 Release
 


在 ALL: tag: @cmd /c $(OUTDIR)/$(EXENAME).exe 中添加執行應用程序的命令。
定義 EXENAME=HelloWin。


圖 8b. 定義 EXENAME
 


下一步是新建一個 make target。
右鍵單擊我們的當前項目,單擊 Create Make Target。

圖 9a. 新建一個 make target
 


爲我們的項目新建一個 make target。“Target name” 用來指定您想要的任何名稱。“Make target” 用來指定我們剛剛在前一步中修改的 .mak 文件名。清除 Use default 複選框,指定 “Build command”,此處的 build command 就是 nmake。要使 Make targets 視圖可見,選擇 Window > Show View > Make Targets。


圖 9b. make target 應爲 HelloWin.mak
 


雙擊我們創建的 HelloEclipse,構建並運行 Win32 應用程序。

圖 10. 運行應用程序
 


VC++ 2005 Express 在傳統的 Visual Studio C/C++ 中做了大量更改,可用一個在 Eclipse 上啓動的項目來解決此項問題。要獲得詳細資料,可以訪問 Eclipse MSVC(請參閱 參考資料)。

 

 


 回頁首
 

 

Eclipse CDT 要成爲可用於 Windows 開發的 IDE 所面臨的挑戰

讓我們看看 Eclipse CDT 在軟件開發週期的不同階段所面臨的諸多挑戰。

設計

UML 已經成爲用面嚮對象語言設計軟件應用程序的實際標準。IBM 爲 Java 技術提供兩種基於 Eclipse 的 Java 開發工具:Rational® Application Developer 和 Rational Rose® XDE Developer。這兩種工具都提供具有 UML 支持的模型驅動開發、Java 代碼雙向工程、自動或隨需應變的模型代碼同步以及其他有用的特性。儘管已經有可用於 Eclipse 的 UML 插件,但目前在 Eclipse 平臺中 UML 和 C/C++ 還沒有緊密地集成起來。

開發

Visual Studio 最有趣的特性是它的資源編輯器。不論是 SDK 還是 MFC 資源編輯器,它們都被廣泛用於爲應用程序開發靜態的 UI 控件。目前 Eclipse CDT 沒有爲開發 UI 提供支持。當生成用於 Windows 開發的 .rc 文件時可以考慮使用 Eclipse 可視化編輯器項目。

Microsoft 不同的發佈版本的編譯器也有所改變,因此 Eclipse CDT 要想支持 Microsoft 發佈的 SDK 工具的不同版本就會極具挑戰。

目前要將 MSVC 代碼完全遷移到開放源碼平臺是不可行的。在 Linux 中,這是一項複雜的任務。Microsoft 的 SDK 工具不能在諸如 Linux 這樣的開放源碼平臺上運行。要讓 SDK 工具在 Linux 上運行,就必須使其運行於 Windows 仿真程序中。

然而目前在 Windows 平臺中,有了 SDK 平臺、Eclipse CDT 和 Debugging Tools for Windows 的幫助,開發人員可以把 Eclipse 平臺看作 MS Visual Studio 的替代方案。

調試

Eclipse CDT 依賴於 GNU Debugger,即 GDB。GDB 是用於 C、C++、Ada 和其他語言的資源級調試器。Eclipse 或 GDB 都不能理解由 Microsoft 編譯器生成的調試信息。這樣一來,選擇 CDT 作爲 Windows 開發的專用開發環境成了一種挑戰。然而,您可以把 Debugging Tools for Windows 同時用於作爲一種開發環境的 Eclipse 的調試。

測試

如同 Java 的 JUnit 一樣,CppUnit 是 C/C++ 的測試框架。Eclipse 的 CppUnit 插件也是可用的,而且可以和 CDT 同時使用來測試 CPP 代碼。關於 CppUnit 教程,請參閱 參考資料。

工具和其他標準

除了在 Windows 上常規的 SDK 開發之外,Visual Studio 還支持包括 DDK、.NET、WMI、Web 開發、IE 組件開發、MDAC 等許多其他開發。Eclipse 插件開發社區在此領域還會做出更多貢獻。

所有的開放源碼工具,例如 listdlls、進程管理器和任務處理器,都可用來在 Eclipse CDT 內部提供支持,這就能在一定程度上縮短這種距離。

 

 


 回頁首
 

 

結束語

 分享這篇文章

 
  提交到 Digg 
 
  發佈到 del.icio.us 
 
  提交到 Slashdot! 
 

 
 
Eclipse 不斷升溫的流行程度、其多功能性和開放源碼特性促使很多人都把 Eclipse 看作未來的開發平臺。像 GCC、GDB 或 GCC/GDB for Windows 這樣的開放源碼開發工具能提供與 Windows SDK 相似的功能性,不過,在當前,要移植 Windows 應用程序以使用這些工具還是一項非凡的任務。

然而,當我們考慮整個 SDLC 階段時,就可以將 Eclipse 看作一種可以替代 visual studio 的有效的開放源碼方案。Eclipse 所支持的可用於 Windows 中的 C/C++ 應用程序開發的插件越來越多,Eclipse CDT 很可能會變成 Windows 中的 C/C++ 開發的默認 IDE。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章