详解 Windows 下 Eclipse CDT 配置 C/C++ 编译环境
其实 windows 下,C、C++ IDE 也不少,但许多IDE的 UI 和用户体验基本都停留在上个世纪,除了 eclipse CDT 和 visual studio,但后者现在是个巨无霸,安装文件都 3 个多G,而且这货安装容易删除难,但 eclipse CDT 就不一样了,绿色无污染,熟悉 java eclipse 的同学也能快速适应~
1、Eclipse及CDT的安装
- 离线安装CDT
到Eclipse的官方网站http://www.eclipse.org上下载Eclipse。
CDT的全称是C/C++ DevelopmentTools,是使Eclipse能够支持C/C++开发的插件。进入CDT的官方网站,http://www/eclipse.org/cdt,然后选择一个镜像站点分别下载CDT。下载完成后,将这两个压缩包解压到Eclipse的目录中或通过插件方式安装。
注意:CDT的版本和Eclipse的版本有严格的对应关系,如果版本对应不正确就会安装不成功。
- 在线安装CDT
也可以在安装完Eclipse后,通过Eclipse的软件更新功能在线安装CDT,具体步骤可以参考Eclipse的在线文档。
- 直接下载 eclipse CDT 集成版
如果你不想在插件上折腾,也可以直接下载 eclipse 官方已经编译好的二进制版 eclipse CDT:
http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/lunasr2
2、安装MinGW/CygWin
Cygwin 是用于 Windows 的类 UNIX 环境,它包括 GCC 移植以及所有必需的开发工具,包括 automake 和 GNU 调试器(GNU Debugger,GDB)。Cygwin 是在cygwin1.dll 库基础上构建的。Cygwin 的备用解决方案是 Minimalist GNU for Windows(MinGW)(请参阅参考资料以获得链接)。该工具是一组可免费获取、自由分发的特定于 Windows 的头文件和导入库,这些头文件和导入库与 GNU 工具集(它们允许您生成不依赖于任何第三方 DLL 的本机 Windows 程序)结合在一起。如果您想要创建与 POSIX 兼容的 Windows 应用程序,那么 MinGW 是最佳选择。MinGW 甚至可以在 Cygwin 安装之上工作。
现在 eclipse CDT 还无法编译执行 C/C++ 程序,因为缺少了重要的部件。这个部件就是C/C++的编译器。在WindowsOS下我们可以选择MinGW(Cygwin 也一样可以)。到MinGW的网站 http://mingw.sourceforge.net 上,下载MinGW,安装。安装后,要配置一些环境变量。
3、添加环境变量
右键我的电脑->属性->高级->环境变量->系统变量中添加
MINGW_HOME=C:/MinGW
LIBRARY_PATH = %MINGW_HOME%/lib
C_INCLUDE_PATH = %MINGW_HOME%/include
在PATH变量的最后增加 ;%MINGW_HOME%/bin
CygWin 同上操作。
4、配置MinGW
因为Eclipse预设用来编译的文件为 make.exe,但是 MinGw 安装后 make 的文件名是mingw32-make.exe
因此需要把 mingw32-make 改名为 make
安装完后,环境变量可能会在安装过程中自动设置好,在cmd中输入gcc测试一下,假如显示gcc: no input file ,则安装已成功,否则,自己把c:/mingw/bin的目录手动加到环境变量(path)里面。
5、配置Eclipse
为了让CDT能够采用MinGW进行编译,需要在 Eclipse 中进行设定
Window->Preferences->C/C++->Make->NewMake Project->New Builder
->Binary Parser 取消 Elf Parser 改选 PE WindowsParser(或者 Cygwin/MinGW)
6、创建、编译C/C++工程
新建->Managed Make CProject->添写工程名,然后在项目下创建"SourceFile",名称任意,扩展名为.c。
7、常见问题:
7.1 launch failed no binaries 错误
Windows > Preferences > C/C++ > New CDT project wizard > Makefile Project > Binary Parsers
a) Set it to Windows PE Parser if you are on windows.
b) Set it to Cygwin PE Parser if you are using Cygwin
Windows > Preferences > C/C++ > Build > Environment
Now click on "select" and select "Path" variable so that you add you path variables in Eclipse.
如果以上都操作完成,则可以 ctrl + B(编译工程),然后 ctrl + F11(运行工程)
7.2 Run 出现莫名其妙的奔溃
这种情况一般是你的 cygwin/MinGW 编译环境安装不完善/版本有问题导致的,你可以换一个其它IDE环境或者重新完整安装试试,我这里选择安装 C-Free 5,它自带了一套 MinGW 环境,重新设置之前的三个环境变量指向C-Free 5的MinGW ,然后重试一切OK~
7.3 CDT插件安装完毕后,在Eclipse新建项目向导中无法找到C、C++项目
由于CDT版本与Eclipse版本不匹配,更换合适的CDT版本,问题便会解决。
8、code 运行示例:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char c;
printf("%s","please input a char:n");
fflush(stdout);
scanf("%c[n]", &c);
char c2Ascii = toascii(c) + 35;
printf("the original char is: %c, and the convert char is: %cn", c, c2Ascii);
return 0;
}
9、Refer:
[1] 详解Windows下Eclipse CDT 配置C-C++ 编译环境
http://blog.csdn.net/jason314/article/details/5639334
http://blog.csdn.net/chaofanwei/article/details/11841621
[2] 用 Eclipse 平台进行 C/C++ 开发
http://www.ibm.com/developerworks/cn/linux/opensource/os-ecc/#resources
[3] Launch Failed Binary not found eclipse for C in windows
http://stackoverflow.com/questions/9407430/launch-failed-binary-not-found-eclipse-for-c-in-windows
[4] Launch Failed. Binary not found. CDT on Eclipse Helios
http://stackoverflow.com/questions/4971926/launch-failed-binary-not-found-cdt-on-eclipse-helios
- 大数据和云计算技术周报:NoSQL特辑
- 常用业务接口界面化 in python flask
- 打印机设置(PrintDialog)、页面设置(PageSetupDialog) 及 RDLC报表如何选择指定打印机
- 区块链推动支付革命
- MySQL常见的库操作,表操作,数据操作集锦及一些注意事项
- nohup命令
- 跨浏览器的剪贴板访问解决方案
- 装逼必备:大型分布式网站术语分析
- 年前爆炸一波!小程序视频功能来了!
- ubuntu13.04环境hadoop1.2.1单机模式安装
- silverlight:telerik RadControls中RadGridView的一个Bug及解决办法
- scope引起的问题
- JS正则表达式常用函数汇总
- 修改(同步)linux时间
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 字符集其实很简单
- kubernetes(二十)SpringCloud微服务容器化迁移
- HashMap? ConcurrentHashMap? 相信看完这篇没人能难住你!
- kubernetes(七) 二进制部署k8s(1.18.4版本)
- Java并发编程(7)- 线程调度 - 线程池
- Java并发编程(6)- J.U.C组件拓展
- Java并发编程(5)- J.U.C之AQS及其相关组件详解
- Python+selenium 自动化-启用带插件的chrome浏览器,调用浏览器带插件,浏览器加载配置信息。
- Java并发编程(4)- 线程安全策略
- Java并发编程(3)- 如何安全发布对象
- Python 技术篇-3行代码实现语音朗读,pywin32库实现语音朗读
- Java并发编程(2)- 线程安全性详解
- Python 技术篇-1行代码实现语音识别,speech库快速实现简单的语音对话
- linux和windows互传文件,用户配置文件和密码配置文件,用户组和用户管理
- 除Innodb和MyISAM外MySQL还有哪些存储引擎