配置Eclipse+MinGW开发C/C++程序

简介:

Eclipse 3.3已经发布好一段时间了。我曾用Eclipse之前的版本加上CDT组件开发C/C++程序。但是也许是因为对配置不够熟悉的缘故,配置起来非常痛苦,使用起来也觉得特别别扭,所以最后还是不得不换用了VC 2005 Express。

  Eclipse 3.3的下载页面中,针对不同的开发人员提供了不同的下载包。其中“Eclipse IDE for C/C++ Developers”一项让人有“Eclipse能很好的支持C/C++开发”的感觉。毕竟这是一个针对C/C++开发的专版,不像安装插件那样让人始终觉得有“附加功能”的感觉。

  下载Eclipse IDE for C/C++ Developers之后第一件事就是查阅帮助。“Before you begin”一章说明Windows用户主要应使用MinGW或Cygwin的C/C++开发环境,并对使用MinGW的情况加以大篇幅的说明。看样子在Windows下使用Eclipse CDT作为IDE开发C/C++,想使用VC的编译器难度有点大,而用MinGW环境应该是最优选择。

  在MinGW主页(http://www.mingw.org/)很容易找到MinGW的下载页面。之后看到一大堆需要下载的包,头都大了。于是决定下载Automated MinGW Installer,让它在线下载安装MinGW及一些需要的组件。几本上只需要安装gcc组件就够了。

  打开Eclipse,照例是HelloWorld。不过在开始写程序之前还是习惯性地先去看看配置选项。General->Editors->Text Edtiors里把Show line numbers勾上了。按照编码规范每行代码是不应该超过80个字符的,所以勾上了Show print margin并将Print margin column设置成80。毕竟有一条参考线在编辑窗口中心里更有底。顺便把Insert spaces for tabs也勾上了,用空格代替制表符。后来编辑C++代码的时候发现缩进插入的仍然是制表符而不是空格。这才想起去C/C++->Code Style里去设置。

  然后在C/C++->Editor->Syntax Coloring里去设置了一下语法高亮的格式。把所有粗体都取消了,把表示静态和常量的斜体也都换成了下划线。多年的习惯,看粗体和斜体就是不顺眼。

  最后还在C/C++->New CDT project wizard里把MinGW设置成了默认的toolchain(选中MinGW GCC,点击Make tookchain preferred按钮),这样以后新建工程的时候就不用每次还要去点选一下了。

  现在该新建HelloWorld项目了。从菜单File->New->C++ Project就打开了创建C++项目的向导。输入工程名并选好目录之后就可以Finish了,如下图。如果Next到下一页是选择Debug和Release两个配置。默认都是选中的。

工程建好后默认就把一些公用头文件的目录加在了Include设置里面,如图:

 

在工程属性里(Project->Properties)可以找到设置的地方,就在C/C++ General->Paths and symbos选项卡中,Inclues子卡里面。因为当前项目是C++ Project,所以Language选择GNU C++,右边的Include paths窗口就把包含的头文件目录都列出来了,如下图。如果项目需要包含其它头文件目录,也可以在这里添加。添加其它头文件目录的时候,通过GUI选择的路径是以绝对路径的方式添加进去的,也可以手工改成相对于当前工程目录的路径。

 

如果还需要设置链接的静态库,可以在Library paths里添加静态库所在的目录。但是,添加了静态库目录之后还需要添加需要链接的静态库,这就要在C/C++ Build->Settings里设置了。在这一设置的Tool settings选项卡中,找到MinGW C++ Linker->Libraries设置,这里可以添加需要链接的静态库(-l),也可以添加/修改这些静态库所在的目录(-L)。不过在这里添加静态库目录时使用相对路径似乎有点小问题,所以我一般就在上面提到的地方添加目录了。添加静态库的子窗口如下图:

 

项目属性中还有一个设置需要注意,就是C/C++ Build->Environment中的环境变量设置。主要是看有没有添加一个包含MinGW的bin目录的PATH变量。这个变量在创建工程的时候一般会自动添加。但如果没有正确设置PATH变量,编译的时候就会报错说不能运行g++或者gcc。如下图:

设置都差不多了,在项目中新添加一个名为main.cpp的Source File,输入测试代码:


 
 
  1. #include <iostream>  
  2.  
  3. using namespce std;  
  4.  
  5. int main(int argc, char* argv[]) {  
  6.     cout << "Hello World!" << endl;  
  7.     return 0;  

然后右键编辑器内部,从菜单中选择Run As->Local C/C++ Application即可编译运行。如果需要调试,应该选择Debug As->Local C/C++ Application。不过每次使用Debug的时候都会报错,因为MinGW没有装gdb。以后有空再慢慢装吧。



本文转自边城__ 51CTO博客,原文链接:http://blog.51cto.com/jamesfancy/843171,如需转载请自行联系原作者

相关文章
|
3月前
|
IDE 开发工具 C语言
C++一分钟之-嵌入式编程与裸机开发
通过这些内容的详细介绍和实例解析,希望能帮助您深入理解C++在嵌入式编程与裸机开发中的应用,提高开发效率和代码质量。
95 13
|
5月前
|
NoSQL 编译器 C语言
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。高级技巧包括内存检查、性能分析和符号调试。通过实践案例学习如何有效定位和解决问题,同时注意保持耐心、合理利用工具、记录过程并避免过度调试,以提高编程能力和开发效率。
107 1
|
5月前
|
Java Android开发
Eclipse Debug 配置
Eclipse Debug 配置
52 3
|
5月前
|
Java Android开发
Eclipse 运行配置(Run Configuration)
Eclipse 运行配置(Run Configuration)
177 1
WK
|
5月前
|
机器学习/深度学习 人工智能 算法
那C++适合开发哪些项目
C++ 是一种功能强大、应用广泛的编程语言,适合开发多种类型的项目。它在游戏开发、操作系统、嵌入式系统、科学计算、金融、图形图像处理、数据库管理、网络通信、人工智能、虚拟现实、航空航天等领域都有广泛应用。C++ 以其高性能、内存管理和跨平台兼容性等优势,成为众多开发者的选择。
WK
242 1
|
6月前
|
编译器 C语言 C++
配置C++的学习环境
【10月更文挑战第18天】如果想要学习C++语言,那就需要配置必要的环境和相关的软件,才可以帮助自己更好的掌握语法知识。 一、本地环境设置 如果您想要设置 C++ 语言环境,您需要确保电脑上有以下两款可用的软件,文本编辑器和 C++ 编译器。 二、文本编辑器 通过编辑器创建的文件通常称为源文件,源文件包含程序源代码。 C++ 程序的源文件通常使用扩展名 .cpp、.cp 或 .c。 在开始编程之前,请确保您有一个文本编辑器,且有足够的经验来编写一个计算机程序,然后把它保存在一个文件中,编译并执行它。 Visual Studio Code:虽然它是一个通用的文本编辑器,但它有很多插
154 6
WK
|
5月前
|
开发框架 移动开发 Java
C++和Java哪个更适合开发移动应用
本文对比了C++和Java在移动应用开发中的优劣,从市场需求、学习难度、开发效率、跨平台性和应用领域等方面进行了详细分析。Java在Android开发中占据优势,而C++则适合对性能要求较高的场景。选择应根据具体需求和个人偏好综合考虑。
WK
144 0
WK
|
5月前
|
安全 Java 编译器
C++和Java哪个更适合开发web网站
在Web开发领域,C++和Java各具优势。C++以其高性能、低级控制和跨平台性著称,适用于需要高吞吐量和低延迟的场景,如实时交易系统和在线游戏服务器。Java则凭借其跨平台性、丰富的生态系统和强大的安全性,广泛应用于企业级Web开发,如企业管理系统和电子商务平台。选择时需根据项目需求和技术储备综合考虑。
WK
249 0
|
6月前
|
NoSQL API Redis
如何使用 C++ 开发 Redis 模块
如何使用 C++ 开发 Redis 模块
|
2月前
|
编译器 C++ 开发者
【C++篇】深度解析类与对象(下)
在上一篇博客中,我们学习了C++的基础类与对象概念,包括类的定义、对象的使用和构造函数的作用。在这一篇,我们将深入探讨C++类的一些重要特性,如构造函数的高级用法、类型转换、static成员、友元、内部类、匿名对象,以及对象拷贝优化等。这些内容可以帮助你更好地理解和应用面向对象编程的核心理念,提升代码的健壮性、灵活性和可维护性。

热门文章

最新文章

推荐镜像

更多