用Eclipse(CDT)和MinGW构建Windows上的C/C++开发环境

 

C++开发环境

Visual Studio2008:

Vs2008+sp1+ VA_X

Eclipse3.5.1:

JDK1.6(jave环境)+Eclipse3.5.1(已集成了CDT,c++)+MinGW5.1.6(gcc)+gdb-6.6.tar.bz2+MSYS-1.0.10(makefile)

 

 

多年以来,一直使用Eclipse作为自己的Java IDE, 觉得最好的一点就是它的编辑器功能,所以也尝试使用Eclipse+CDT作为自己的C/C++开发平台,不过早期的CDT版本中编辑器功能以及提供的开发方式并不尽如人意。随着CDT的不断发展,在这些方面都有了长足的进步,已经可以用来作为主要C/C++开发平台。

本文详细介绍了在Window系统上使用Eclipse和MinGW作为C/C++开发平台的的安装和配置过程。

各个软件版本是到目前为止(2009年11月23日)的最新稳定版本:

  • JDK1.6
  • Eclipse 3.5.1
  • CDT 6.0.1(已集成在Eclipse中)
  • MinGW (MinGW-5.1.6(gcc环境), gdb for mingw 6.8, MSYS-1.0.11(makefile))

MinGW的安装与配置

MinGW

这里我们采用自动安装方式,手动安装可以参考MinGW.org的在线文档 .

1. 在MingGW的下载页面 下载并运行MinGW-5.1.6.exe

2. 在安装向导的各个页面:

  • Install orjust download files? -> Download and install
  • Choose Package -> Current
  • Choose Components -> MinGW base tools, g++ compiler (不要选择MinGW Make,我们后面要安装的MSYS里面带了更完善的make工具)
  • Destination Folder ->  输入你要安装到的位置,比如D:/C/MinGW

3. 安装完成后,把MinGW的bin目录,比如D:/MinGW/bin加到系统的环境变量PATH中


3.       修改环境变量

选择计算机 — 属性 --- 高级系统设置 --- 环境变量,在系统变量中找到 Path 变量,在后面加入 min-gw 的安装目录,如 C:\MinGw\bin

4.       在开始菜单中,点击“运行”,输入cmd,打开命令行

输入mingw-get,如果弹出MinGw installation  manager窗口,说明安装正常。 此时,关闭MinGw installation  manager窗口,否则接下来的步骤会报错

5.       在cmd中输入命令 mingw-get install gcc,等待一会,gcc就安装成功了。

如果想安装g++,gdb,只要输入命令 mingw-get install g++和mingw-get install gdb



4. 验证安装: 写一个简单的test.c程序,在命令行输入gcc -o test.exe test.c , 看编译是否正常

GDB for MinGW

在上面安装的MinGW中,并不包括gdb。为了debug我们的程序,需要单独下载和安装gdb

1. 在MingGW的下载页面 中GNU Source-Level Debugger下,下载gdb-6.8-mingw-3.tar.bz2   或者版本gdb-7.4-2-mingw32-bin.tar.lzma; https://sourceforge.net/projects/mingw/files/MinGW/Extension/gdb/

2. 使用7-zip解压缩到MinGW的安装目录

3. 验证安装

  • 写一个简单的test.c程序,在命令行输入gcc -o test.exe -g test.c
  • 在命令行运行 gdb test.exe
  • gdb> 提示符后,输入list ,查看打印出的test.c程序

MSYS

MSYS是一个window上的类似bash 的shell,可以用来替代Windows自带的cmd.exe。它提供了部分Unix平台上的常用工具,包括make。我们需要安装它,以支持在Eclipse CDT上开发使用Makefile的程序。

1. 在MingGW的下载页面 中MSYS Base System下,下载并运行MSYS-1.0.11.exe

2. 安装过程中,指定安装目录,假定是D:/msys/1.0

3.  安装到100%时,会弹出DOS窗口,询问是否继续进行post install, 输入y

  • Do you have MinGW installed?[yn] -> y
  • Where is your MinGW installation? -> D:/MinGW (请用真实的安装目录替换,注意路径分隔符要使用斜杠"/")

4. 安装结束后,把MSYS的bin目录,比如D:/msys/1.0/bin加到系统的环境变量PATH中

5. 在命令行输入make -v 验证安装

Eclipse的安装与配置

如果还没有安装JDK ,请先到SUN 的网站 下载安装JDK1.6 (Java SE 6).

对于Eclispe,推荐下载 集成好CDT 的Eclipse 版本,这样配置起来最简单,问题也最少。

 

下载集成好CDT 的Eclipse(Eclipse IDE for C/C++ Developers ) windows版本 后,解压缩即可。

     

    安装Eclipse与CDT插件

            从站点http://www.eclipse..org上下载eclipse 3.0.1版本,然后解压缩到c:\eclipse下(目录自己随意安排,至于安装jdk与配置环境,这里不说了,网上很多,自己去找吧)

           打开eclipse,选择菜单Helpàsoftware updatesàfind and install,弹出”Feature Updates”对话框,选择”Search for new feature to install”,进入”Update sites to visit”对话框,选择右边按钮”New Remote Site”,在”name”一栏,随便填个名字,例如”CDT”;在”URL”中填写: http://update.eclipse.org/tools/cdt/releases/new.,然后next,选择最新版本的” Eclipse C/C+ Development Tooling SDK”与” Eclipse C/C+ Development Tools”进行安装

         配置开发环境

          打开WindowsàPreferences,选择C/C++àNew Make Projects,在Make Builder栏中,修改build commond为mingw32-make

            修改Binary Parser栏,选中PE Windows Paser,放在最前面

        例子

           Managed Make C project

    1)      FileàNewà ProjectàCà Managed Make C project,输入project name,例如”testmanagedc”,其余选择默认,建立一个新的工程

    2)      FileàNew àFile,建立一个main.c文件,输入代码:

                    #include <stdio.h>

                    int main(){

                        printf("hello,world");

              return 0;

          }

    3)      Projectàproperties,在C/C++build一项中,选择Configuration后面的Manage按钮,修改Make commond一栏,将”make –k”替换为mingw32-make.

    4)      ProjectàBuild Project

    5)      RunàRun…,选择C/C++local,选择下面的new按钮,建立一个新的configuration,name随便,在main栏中,Project一项通过Browse 按钮,选择当前所用project;C/C++ Application中通过Search/Browse,选择当前可用的执行文件名(必须是已经生成的,真BT),这样就可以通过Run 与debug功能

    l         Standard Make C project

    1)      FileàNewà ProjectàCà Standard Make C project,输入project name,例如”teststandardc”, next,在C/C++ make project setting中修改Make Builder中Build commond为 mingw32-make –f makefile,其余选择默认,建立一个新的工程.

    2)      FileàNew àFile,建立一个main.c文件,输入代码:

        #include <stdio.h>

                    int main(){

                        printf("hello,world");

                        return 0;

    }

    3)      FileàNew àFile,建立一个makefile文件,输入代码:

                                main : main.o

                                    g++ -o main main.o -L C:/MinGW/lib/gcc-lib/mingw32/3.2.3/ -lstdc++

                                main.o : main.c

                                    g++ -ggdb -c main.c

                                all :

                                    ${MAKE} main

                                clean :

                                    -del main.o

     

    4)      ProjectàBuild Project

    5)      RunàRun…,选择C/C++local,选择下面的new按钮,建立一个新的configuration,name随便,在main栏中,Project一项通过Browse 按钮,选择当前所用project;C/C++ Application中通过Search/Browse,选择当前可用的执行文件名(必须是已经生成的,真BT),这样就可以通过Run 与debug功能


    简单的C项目示例

    假设现在要编写一个华氏温度和摄氏温度之间换算的程序,并按照模块分成了以下三个源程序:

    1. temp_convert.h

    1. #ifndef _TEMP_CONVERT_H_  
    2. #define _TEMP_CONVERT_H_  
    3. double c2f(double);  
    4. double f2c(double);  
    5. #endif  

    2. temp_convert.c

    1. #include "temp_convert.h"  
    2. double c2f(double c) {  
    3.     return c * 9.0 / 5.0 + 32;  
    4. }  
    5. double f2c(double f) {  
    6.     return (f - 32.0) * 5.0 / 9.0;  
    7. }  

    3. main.c

    1. #include <stdio.h>  
    2. #include "temp_convert.h"  
    3. int main() {  
    4.     double i = 0;  
    5.     printf("Fahrenheit/tCelsius/n");  
    6.     for (; i <= 100; i++) {  
    7.         printf("%10.2f/t%7.2f/n", i, f2c(i));  
    8.     }  
    9.     return 0;  
    10. }  

    使用Internal Builder

    这种方式不需要自己编写makefile,适用于结构简单的项目。

    在创建项目的时候,选择 C Project->Executable->Empty Project, ToolsChains 选择 MinGW GCC

    把上面的三个程序加入项目,选择Run as "Local C/C++ Application"既可编译运行。

     

    单独编写makefile

    对于结构复杂,模块比较多的项目,我们需要编写makefile,来更好的控制程序的编译以及其他相关过程。

    在创建项目的时候,选择 C Project->Makefile Project->Empty Project, ToolsChains 选择 MinGW GCC

    把上面的三个程序加入项目,然后新建一个makefile,内容如下:

    1. EXE_TARGET = temp_convert.exe  
    2. CC = gcc  
    3. CFLAGS = -Wall  
    4. COMPILE = $(CC) $(CFLAGS) -c  
    5. SRCS = $(wildcard *.c)  
    6. OBJS = $(patsubst %.c,%.o,$(SRCS))  
    7. all: $(EXE_TARGET)  
    8.       
    9. $(EXE_TARGET): $(OBJS)  
    10.     $(CC) -o $(EXE_TARGET) $(OBJS)  
    11. main.o temp_convert.o: temp_convert.h  
    12. %.o: %.c  
    13.     $(COMPILE) -o $@ $<  
    14.       
    15. clean:  
    16.     -rm $(OBJS) $(EXE_TARGET)  

     

    编译的时候,选择Build Project既可,会默认执行all这个target。对于其他的make target,可以在makefile的Outline里面,选中某个target,然后右键菜单"Add make Target".

    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值