Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > C/C++ > 将 Visual Studio C 和 C++ 项目迁移到 Eclipse CDT
【标  题】:将 Visual Studio C 和 C++ 项目迁移到 Eclipse CDT
【关键字】:Visual,Studio,C++,Eclipse,CDT
【来  源】:http://www.cublog.cn/u/22965/showart.php?id=241198

将 Visual Studio C 和 C++ 项目迁移到 Eclipse CDT

Your Ad Here

从IBM看到的东西

http://www.ibm.com/developerworks/cn/opensource/os-ecl-vscdt/index.html?S_TACT=105AGX52&S_CMP=techcsdn

将 Visual Studio C 和 C++ 项目迁移到 Eclipse CDT

将 Microsoft VS 项目迁移到 Eclipse C/C++ Development Toolkit 的详尽指南

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

将此页作为电子邮件发送

将此页作为电子邮件发送


拓展 Tomcat 应用

下载 IBM 开源 J2EE 应用服务器 WAS CE 新版本 V1.1


级别: 中级

Priyadarshini Sampath (priyadarshini@in.ibm.com), 高级软件工程师, IBM India
Ramakrishnan Kannan (rkrishnan@in.ibm.com), 高级软件工程师, IBM India
Karthik Subbian (ksubbian@in.ibm.com), 高级软件工程师, 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 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 应用程序。

  1. 如果您没有现成的 Win32 应用程序,就用 Visual Studio 创建一个 HelloWorld Win32 应用程序。从 Visual Studio 的 Projects > Export Makefile 菜单中创建一个 makefile。

    图 1. 用 Visual Studio 创建一个 HelloWorld Win32 应用程序
    用 Visual Studio 创建一个 HelloWorld Win32 应用程序

  1. 启动 Eclipse,打开 C/C++ 视图。
    1. 选择 Window > Open Perspective > Other

      图 2a. 打开 C/C++ 视图
      打开 C/C++ 视图

    1. 选择 C/C++ 视图


    图 2b. 选择 C/C++ 视图
    选择 C/C++ 视图

    注意:只有在安装 CDT 插件后,C/C++ 视图才会在 Select Perspective 对话框中列出。
  1. 通过 File > New > Standard Make C++ Project 创建一个标准的 C/C++ Make 项目。在出现的 New Project 对话框中的 Project Name 编辑框中将此项目命名为 HelloEclipse,单击 Finish

    图 3a. 创建 HelloWorld
    创建 HelloWorld



    图 3b. 将项目命名为 HelloEclipse
    将项目命名为 HelloEclipse

  1. 现在我们要把用 Visual Studio 创建的文件导入 Eclipse 中。选择 File > Import。在 Import 对话框中选择 Filesystem 后单击 Next。如果新创建的项目不可见,选择 Window > ShowView > C/C++ project

    图 4. 导入 HelloWorld Visual Studio 项目文件
    导入 Visual Studio 文件

  1. 浏览到新创建的 Visual Studio 项目所在的目录,选择要导入的 *.c*、*.h*、*.rc、*.ico.mak 文件后单击 Finish

    图 5. 导入 *.c*、*.h*、*.rc、*.ico 和 .mak 文件
    导入 *.c*、*.h*、*.rc、*.ico 和 .mak 文件

  1. 环境变量的添加

    图 6. 添加环境变量
    添加环境变量

  1. 右键单击此项目,选择 Properties。在 Properties for HelloEclipse 对话框中,选择左侧的 C/C++ Make Project,添加 INCLUDELIB 环境变量,使其指向 Visual Studio 的 include 和 lib 路径。如果您使用的是 SDK 平台,则指向 SDK 的 include 和 lib 目录。

    图 7. 使 Visual Studio include 和 lib 路径指向正确的方向
    使 Visual Studio include 和 lib 路径指向正确的方向

  1. 打开从 Visual Studio 项目中导入的 .mak 文件,做出以下更改:
    1. 将配置(CFG)由 Debug 更改为 Release,以便得到一个应用程序的发布版本。它与 CFG=HelloWin - Win32 Release 相似。

      图 8a. 将配置从 Debug 更改为 Release
      将配置从 Debug 更改为 Release

    1. 在 ALL: tag: @cmd /c $(OUTDIR)\$(EXENAME).exe 中添加执行应用程序的命令。
    2. 定义 EXENAME=HelloWin


    图 8b. 定义 EXENAME
    定义 EXENAME

  1. 下一步是新建一个 make target。
    1. 右键单击我们的当前项目,单击 Create Make Target

      图 9a. 新建一个 make target
      新建一个 make target

    1. 为我们的项目新建一个 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
    make target 应为 HelloWin.mak

  1. 双击我们创建的 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 提交到 Digg
del.icio.us 发布到 del.icio.us
Slashdot 提交到 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。



参考资料

学习

获得产品和技术

讨论


作者简介

Priyadarshini Sampath

Priyadarshini Sampath 目前在 IBM India 的 India Systems and Technology Lab 从事 Universal Systems Management 项目方面的工作。在此之前,她曾在 IBM India Software Labs 的 Host Integration 领域(HACP)工作了六年多。她的工作经验包括管理主机访问的客户机产品,如 PCOMM。她是 IBM 认证的 XML 解决方案开发人员,持有印度 Bharadhidasan 大学的计算机科学与工程学学士学位。


Ramakrishnan Kannan

Ramakrishnan Kannan 在班加罗尔的 IBM India Software Laboratory 从事主机集成方面的工作。他曾担任过 IBM 个人通信和通信服务器产品方面的开发人员。除承担开发工作外,他还与 IBM 亚太区的客户合作开展为主机应用程序启用 Web 服务方面的工作。他曾为 Infosys 等 developerWorks 的业务合作伙伴举办过旨在提高 Web 服务意识的培训。他是 IBM 认证的 XML 解决方案开发人员及 Sun 认证的 Java 程序员。他感兴趣的领域包括主机集成、分布式机算、SOA 和网络。


Karthik Subbian

Karthik Subbian 目前在班加罗尔的 IBM India Software Laboratory 从事为制造企业构建优化产品方面的工作。他还具有帮助客户管理应用程序并将其迁移到 IBM 平台方面的经验。他感兴趣的软件领域包括网格计算、XML、Web 服务和 SOA。他曾与他人合著了多本有关网格计算技术的 IBM 红皮书。他是 IBM 认证的 XML 解决方案开发人员及 Sun 认证的 Java 程序员。

oracle视图及其功能_1:【上一篇】
AdjustTokenPrivileges:【下一篇】
【相关文章】
  • 在Eclipse RCP应用中利用扩展点机制解藕插件的依赖关系
  • c++里关于cerr,clog,cout三者的区别
  • 几个c++语句的汇编实现(H1指令)
  • My understanding of Object Oriented C++
  • MyEclipse5.1的注册号
  • 获得当前系统时间(C/C++)
  • 用C++编写跨平台程序
  • Visual Studio.NET 术语表
  • JAVA1.5+TOMCAT+Eeclipse 的配置
  • C++总结(二)---gcc知识(一)
  • 【随机文章】
  • 在Windows下将Python转化成独立的EXE程序
  • PhoneME简介(翻译)
  • 略说〈尼罗河惨案〉与〈长夜〉
  • 一定要有计划
  • 对testking的逐个总结分析(65-100题)
  • Win32教程31-列表视图控件 上
  • clearcase的license的相关问题
  • 浮动DIV代码
  • LANscape FuturecomUD级布线系统
  • Fireworks MX2004表现脉冲光效果
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.