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

news/2024/6/29 16:30:32 标签: eclipse, windows, makefile, application, file
 

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(file>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(file>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 file>makefile,其余选择默认,建立一个新的工程.

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

        #include <stdio.h>

                    int main(){

                        printf("hello,world");

                        return 0;

    }

    3)      FileàNew àFile,建立一个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

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

    2. temp_convert.c

    view plain
    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

    view plain
    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

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

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

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

     

    单独编写file>makefile

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

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

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

    view plain
    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,可以在file>makefile的Outline里面,选中某个target,然后右键菜单"Add make Target".


    http://www.niftyadmin.cn/n/1535598.html

    相关文章

    DOM编程从入门到忘记

    文档对象模型&#xff08;Document Object Model&#xff0c;DOM&#xff09;是使用 W3C 定义的 API (Application Program Interface) 来操作 HTML 文档 &#xff08;此处不局限于 HTML&#xff0c;亦可操作 XHTML、XML 等&#xff09;&#xff0c;使用户可以与进行页面交互。…

    linux如何清除系统的cache buffer与cache的区别

    linux如何清除系统的cache 在内核文档的Documentation/filesystems/proc.txt里面有说。 drop_caches ----------- Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free. To free pagec…

    Justinmind使用教程(1)——概述部分

    Justinmind&#xff08;http://www.justinmind.com/&#xff09;,类似于Axure的一个原型设计工具。就眼下而言&#xff0c;最适合移动端进行原型设计的工具&#xff0c;预计抛开Axure几条街了&#xff0c;可是眼下国内站点论坛关于Justinmind的学习资料比較少。本人将结合自己的…

    Apache2.2.x+tomcat单IP多域名多站点的虚拟主机配置详解(win2003环境)

    Apache2.2.xtomcat单IP多域名多站点的虚拟主机配置详解(win2003环境) 最近新购置了一台服务器&#xff0c;同时在windows2003下成功整合了Apachetomcatphp的Web应用环境。接下来遇到的就是通过该服务器下单IP配置多个站点和多个域名的问题了。 首先&#xff0c;凡事先google或…

    Openssl的安装

    openssl简介 openssl是一个功能丰富且自包含的开源安全工具箱。它提供的主要功能有&#xff1a;SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码、数字证书编解码、CRL编解码、OC…

    多图片上传插件

    最近项目需要用到图片上传插件&#xff0c;所以自己动手写了一个 //html代码 <div class"file-box"><div class"file-btn">选择图片<input type"file" name"file" id"file" value"" multiple />…

    CentOs7下搭建LAMP环境

    ● 环境搭建 参考&#xff1a; http://blog.csdn.net/zph1234/article/details/51248124 http://www.jb51.net/os/188488.html 1、配置防火墙CentOS 7.0默认使用的是firewall作为防火墙。1、关闭firewall&#xff1a; systemctl stop firewalld.service #停止firewall systemct…

    apache2+JK+tomcat5.5部署含有servlet-mapping的站点

    从网上下了Jforum&#xff0c;做BBS发布&#xff0c;在部署过程中遇到一问题&#xff1a;tomcat下可以正确运行&#xff0c;但是在如果用apache2做前端&#xff0c;则报错&#xff0c;404&#xff0c;找不到页面&#xff0c;google了很久&#xff0c;发现是Jforum中用了servlet…