`
neora
  • 浏览: 183806 次
  • 性别: Icon_minigender_1
  • 来自: 墨尔本
文章分类
社区版块
存档分类
最新评论

用eclipse在Windows下做C开发

阅读更多

    因为项目需要,需要在Windows下用C开发。一直不喜欢Microsoft对IDE的过渡封装,因此在Visual Studio下坚持了2个月实在是忍耐到了极点。于是开始尝试用Eclipse+cdt。


    首先遇到的问题就是安装。Eclipse3.3 + CDT4.x.x-master 居然存在严重Bug。害了浪费了整整两天时间,google了以后才发现大家都被这个问题困扰。直接改为Eclipse for C/C++ dev后才让编译工作顺利下去。

    初期,编译器选择的是MinGW。可以说CDT与MinGW结合的相当具备可用性。几乎不需要任何配置,就可以立刻着手编码、编译、调试。

    接下来的工作是将原来VC下写的代码移植到CDT+MinGW环境中。起初一些简单代码段的编译是非常容易的,只需要稍做修改,将诸如 #include "stdafx.h"、#pragma comment...注释掉即可编译通过。但随着移植工作的进行,一些比较复杂的代码段开始出现了问题,其中3个问题是比较严重的:

    1、Unicode char*问题。VC在6版本的时候对Unicode 的处理欠缺考虑,因此用增加了_UNICODE预处理定义,同时配合_T()宏的使用。MinGW gcc编译这些代码时,出现了大量的错误提示和警告。多半都在TCHAR WCHAR的转换上。调试了半天,可运行编译结果的时候出现不稳定状况。

    2、第二个是Link Lib的问题。MinGW提供了大量必要的头文件和Lib库,基本上能够完全兼容VC原有代码的。但有少部分VC对ANSI C的扩展未实现。这在特定的情况下给移植工作带来了很大的工作量,我不得不一层层的跟踪进去补充。耗费了很多精力。

    3、第三个问题是目前看起来最严重的。这个项目要求编译后的exe文件要非常微小——少于100K。但MinGW在这方面显出了明显的弱势。一个简单的Hello World 的C++项目Release编译后也要达到800K左右,strip后也只减到200K。难以满足我们的要求。

    鉴于上面的原因,我开始尝试Eclipse +CDT + VC编译器的结合。CDT几乎没提供任何针对VC的缺省选项和配置。只在Error parsers处提供了个CDT Visual C Error Parser。因此,不得不手工配置了。

    经过很短的尝试,就配置成功,很轻松。方法如下:

  •      创建C/C++项目时,选择Makefile project->Hello World C++ Project。注意:Toolchain 要选择--Other Toolchain---。
  •   项目创建好后要修改自动生成的Makefile文件。最关键的是下面两个修改:
  1.  将“OBJS = Test.o" 改为 "OBJS = Test.obj”。因为VC的编译器cl自动识别的目标文件时*.obj而不是*.o,这是与Gcc的重要区别。否则你编译的时候会出现“NMAKE : fatal error U1073: don't know how to make”错误提示。
  2. 将“clean:" 下一行的rm改为erase。erase是windows自带的删除命令。
  • 右键点开项目Properties设置窗口,选择C/C++ Build,钩掉Use default build command的checkbox。在Build->Build command处将make改为nmake。(nmake就是vc的“make”)。
  • 选择C/C++ Build->Discovery options,在Compiler invocation command处,将gcc改为cl。(cl是VC的编译器)
  • 选择C/C++ Build->Envionment,新创建3个环境变量:
PATH=C:\Program files\Visual Studio\VC98\Bin;C:\Program files\Visual Studio\Common\MSDev98\Bin
LIB=C:\Program files\Visual Studio\VC98\Lib
INCLUDE=C:\Program files\Visual Studio\VC98\Include

注:这里的C:\Program files\Visual Studio\就是你的VC安装路径

 

    好了,大功告成。

    相同的代码用VC编译后的大小只有40K,符合要求了。只是编译速度较MinGW的gcc慢了很多。之后我又用Visual Studio 2005的C++编译器尝试过,配置方法完全相同(改改安装路径就可以了)。但编译速度提高了非常多。甚至超过了MinGW的gcc。(Visual Studio 2005的C++编译速度一直口碑不错)。

    从目前来了,在Eclipse CDT中采用了vc编译器后,代码移植工作非常顺利。主要的工作都是花在编写Makefile上,而我一直认为自己写Makefile是件令人愉快的事,这能让你自己控制编译的过程。

    Eclipse CDT+VC的一个缺点是无法使用GDB进行DEBUG了,这对我来说无所谓,反正频繁使用gdb来调试代码是个不好的习惯。

    工程还在继续,待有了新心得有了空,再记下来。

 

 

 

 

 

 

 

------------------------------------------------------------------------------------------------------------

KO对战游戏平台 www.ko10000.com 打游戏,交朋友。

9
1
分享到:
评论
8 楼 neora 2008-05-15  
引用

有个问题和LZ一起讨论下。
也是从LINUX转到WINDOWS,用eclips做开发。

现在如下:在LINUX上做程序时,用到了第三方库。接着要转到WINDOWS,而这个第三方库却转不过去了。 这个挺头疼的。。


作Linux上的程序一直,当然用MinGW编译器要方便多了。转VC库要折腾死人。Linux程序移植到Windows上,这可是个大话题,就你的情况,如果这个第三方库没有提供source或者for windows的lib/dll,是没法移植的。
7 楼 lin_style 2008-05-15  
有个问题和LZ一起讨论下。
也是从LINUX转到WINDOWS,用eclips做开发。

现在如下:在LINUX上做程序时,用到了第三方库。接着要转到WINDOWS,而这个第三方库却转不过去了。 这个挺头疼的。。

不过LZ为什么不下 eclips有个直接for c/c++的版本呢?
6 楼 neora 2008-05-15  
引用
开发 windows 下的程序不用 vc 用什么?

Windows操作系统上的C+编译器很多阿。可选择的集成开发环境也的很多阿。比如n年前很多程序员用C++Builder而不是vc6。

引用
vc我还是用了很多年了, 现在都是vs 直接集成所有语言, 所有方面的开发. 很强大的


当然,vs2003以后,Windows下的综合IDE几乎没人能跟MS比了,只有个Eclipse 的CDT还能在C/C++领域对抗一下。这没办法,操作系统是人家自己的。Windows下的开发的关键有时候并非某种语言本身,而是MS提供的各种API和库。
5 楼 srdrm 2008-05-14  
开发 windows 下的程序不用 vc 用什么?
vc我还是用了很多年了, 现在都是vs 直接集成所有语言, 所有方面的开发. 很强大的

如果在windows 下开发linux运行的? 为何不直接在linux下用eclipse cdt + gcc 或者 + intel的编译器也不错啊
4 楼 neora 2008-05-14  
引用
GCC 编译代码确实不是很紧凑,不过200k vs 40k也太....
你的gcc什么版本?有没有试过-Os,以及strip的时候把不要的东西通通去掉?


单纯用cc编译ANSI C也不太大,但一旦用g++编译*.cpp文件就不得了了。
3 楼 rubynroll 2008-05-14  
GCC 编译代码确实不是很紧凑,不过200k vs 40k也太....
你的gcc什么版本?有没有试过-Os,以及strip的时候把不要的东西通通去掉?
2 楼 neora 2008-05-14  
引用
总感觉Windows不是一个好的开发平台。


是啊。所以我一般只用MacOSX和Linux,但这个项目没办法,需求类似Windows个人防火墙,只能依赖Windows了。
1 楼 robbin 2008-05-14  
总感觉Windows不是一个好的开发平台。

相关推荐

    如何在eclipse中配置进行C语言开发。

    在Eclipse中配置C语言开发环境,主要是为了利用其强大的集成开发环境(IDE)特性,进行高效的代码编写、编译、调试。以下是一份详细的步骤指南,帮助你配置Eclipse以进行C语言开发: 1. **下载并安装Eclipse CDT(C...

    Windows下用Eclipse搭建CC++开发环境

    ### Windows下用Eclipse搭建C/C++开发环境详解 在Windows环境下搭建C/C++的开发环境,对于初学者或是回归编程的老手来说,都是一项既基础又必要的技能。本文将详细解析如何在Windows系统中利用Eclipse构建一个高效...

    eclipse集成开发环境C语言版本

    7. **跨平台**:Eclipse CDT支持Windows、Linux、Mac OS等操作系统,这意味着开发者可以在不同的平台上使用相同的开发环境,有利于代码的移植和团队协作。 在实际使用中,用户需要下载Eclipse IDE for C/C++ ...

    使用jdk、eclipse、MinGw在windows环境下搭建linux环境进行c/c++开发

    ### 使用JDK、Eclipse、MinGw在Windows环境下搭建Linux环境进行C/C++开发的知识点 #### 一、概述 在Windows环境下搭建一个能够支持C/C++开发的环境,通常需要安装一系列的软件和配置相应的环境变量。本文将详细介绍...

    gnu-mcu-eclipse-201901(64位)windows 下 ZYNQ 开发环境

    Eclipse IDE是一个广泛使用的开源集成开发环境,支持多种编程语言和平台,通过插件机制,可以方便地进行定制和扩展。在这个项目中,Eclipse被强化为一个完整的嵌入式ARM开发平台,包括以下关键组件: 1. **编辑器**...

    windows+eclipse+cdt开发环境配置

    本文将深入探讨如何在Windows操作系统上,结合Eclipse IDE与CDT插件,搭建一个高效的C/C++开发环境。 ### 一、下载并安装Eclipse 首先,前往Eclipse官方网站(http://www.eclipse.org/downloads/),选择适合...

    eclipse-windows64

    Eclipse是一款广泛使用的开源集成开发环境(IDE),尤其在Java开发者中非常受欢迎。"eclipse-windows64"指的是适用于Windows 64位操作系统的Eclipse版本。这个版本为用户提供了一个强大的平台来编写、调试和运行Java...

    Windows 下基于 Eclipse 的可视化远程 Linux CC++ 开发环境搭建

    在Windows操作系统上构建一个针对远程Linux服务器的可视化C/C++开发环境,Eclipse是一个非常实用的集成开发环境(IDE)。本文将详细介绍如何利用Eclipse、SecureCRT和Xming来搭建这样一个环境,使得开发者可以在...

    如何在Linux使用Eclipse + CDT开发C C++程序

    在 Windows 平台上,若要开发 C/C++ 程序,我们有 Microsoft Visual Studio、Borland C++ Builder 可用,这些都是很好用的 IDE,但可惜仅能在 Windows 下使用,但是在 Linux 平台呢?基于以下理由,我推荐使用 ...

    用Eclipse平台进行C_C++开发.pdf

    而在Windows上,可以使用Cygwin(提供一个类UNIX环境,包含GCC和开发工具)或MinGW(Minimalist GNU for Windows,生成不依赖于第三方DLL的Windows程序)。Solaris和QNX则需要单独下载并安装它们各自平台的GCC、GNU ...

    Eclipse下配置C&C++开发环境

    ### Eclipse 下配置 C & C++ 开发环境 #### 一、概述 Eclipse 是一款非常流行的开源集成开发环境 (IDE),适用于多种编程语言,其中包括 C 和 C++。配置 Eclipse 以支持 C 和 C++ 的开发涉及到几个关键步骤,主要...

    图解Eclipse开发C++,C语言的配置过程

    通过以上步骤,你已经成功地在Eclipse中配置了一个完整的C++和C语言开发环境。这不仅包括了基础的代码编辑、编译和调试功能,还涵盖了环境变量的设置、项目构建规则的定义等多个方面。这样的配置将极大提升你的开发...

    Windows下Eclipse搭建Android_NDK开发环境

    在【Windows】环境下搭建Android NDK开发环境,主要步骤包括: 1. **下载Android NDK**:首先,你需要从官方网址下载适合Windows系统的NDK安装包,例如NDK r7c。下载后将其解压到你的工作目录,例如`F:\Android NDK...

    gnu-mcu-eclipse-windows-build-tools-2.12-20190422-1053-win32.zip

    GNU MCU Eclipse Windows Build Tools是嵌入式开发领域中的一款强大工具,专为在Windows环境下构建Microcontroller Unit (MCU)应用而设计。这款工具集是GNU工具链的一部分,提供了针对MCU的交叉编译、链接、调试等...

    如何使用Eclipse编译C

    本文将详细介绍如何使用Eclipse这一流行的集成开发环境(IDE)来编译C语言程序。Eclipse最初是为Java开发者设计的,但通过添加特定的插件,它也能支持C和C++的开发。以下是配置和使用Eclipse编译C环境的步骤。 ### ...

Global site tag (gtag.js) - Google Analytics