eclipse下使用cygwin的方法(Windows下用eclipse玩gcc/g++和gdb)
明天就回国了,今晚回国前写写如何配置eclipse和CDT。这个配置方法网上讨论不是很多,可能用的人少,毕竟Windows上写C++程序多数喜欢VS,即使写的是Linux程序,很多人仍然会用VS(说只喜欢用VI的人我佩服)。的确VS很强大,但我也geek一回,使用eclipse做C++程序(用VI才是真正的geek?好吧,我就这水准了,反正我会用VI,但不习惯VI)。希望这篇小小的文章能帮助想在Windows平台上使用gcc/g++和gdb并利用IDE调试程序的人。也希望我们谈到g++和gcc的时候不会再感到神秘或者觉得那是命令行的东西。
这个配置方法我摸索了几天,当然要回国了,忙,自己也懒,其实这几天摸索的时间加起来也就7,8个小时而已,呵呵。
Ok,不废话,开始。
网上配置eclipse+CDT的文章不多,来来去去也就这么几篇,我尝试过,要么过时,亦或者感觉不是很全面,总之没能把我的遇到的问题都完美解决,即使去stackoverflow网站也没有解决我遇到的问题,看来用的人真的很少很少。这里我就打算把我的配置过程全部说出来。
首先,Windows下用eclipse玩C++用到一下三个东西:
1、 eclipse
2、 CDT(一个在eclipse开发C++的插件)
3、 Cygwin(Windows平台的unix模拟程序,包含了gcc和g++),有人说用MinW,但我选择了Cygwin,我想是差不多的,我之所以选择Cygwin是因为它更能大部分模拟unix命令,也很方便。
一、Eclipse下载与安装
Eclipse可以直接去官网下载,Google就可以搜到网址,不多说了。Eclipse是免安装的,下载直接用。这里展示一下我的版本:
二、CDT下载与安装
CDT可以直接下载带有CDT版本的eclipse,亦或者在eclipse的help菜单处查找更新,下载,安装,尤其你是Java程序员的时候。更新方法如下:
1. 打开eclipse,然后:
2. 再在相应的地方输入以下网址,回车,下面出现的可更新软件选项全都勾上,如图:
http://download.eclipse.org/tools/cdt/releases/indigo
然后点击next,下载,就OK了。
当然,如果你做android的,直接去android的官方开发网站下载android开发版本的eclipse,也就是eclipse+ADT其中也带有CDT了。
3. Cygwin下载与安装
Cygwin同样直接Google搜索官方网站下载安装程序,打开安装程序setup.exe,然后选install from internet,接着选择存放位置,代理服务器什么的,最后选择好下载服务器(默认会选择最快的服务器),进入下载列表,这个列表就是要求你下载什么程序的列表,请务必安装以下程序,最恼人的就是,这些必备的程序统统都不是默认安装的。所以,请使用搜索功能,找到这些程序,然后自己勾上,务必安装:
1. 搜索g++和gcc,把相应的程序都勾上;
Gcc的太多了,不截图了,有gcc的能勾都勾上吧,宁杀错,不放过!
顺便说一下,我之前已经安装好了,所以可以看到图中New这一栏中是写着keep,如果没安装,应该是写版本号。如果你真的漏掉什么没安装,重新进入这个setup的时候务必在右上角选择keep这个选项,否则默认下选Cur会把所有软件都重新安装一遍,时间会很长!
2. 搜索gdb,同样勾上devel目录下的程序(我已经装了,所以是显示keep):
3. 搜索make,同样勾上debug和devel目录下的程序。
然后点击next,就可以下载和安装了,第一次过程有点长,耐心……
三、配置
关键时候到了,这个时候就开始配置了。其实配置并不是很复杂,但真心需要耐心在茫茫eclipse的各个选项中慢慢摸索。Ok一步步来。
1. 配置环境变量
貌似开源阵营最喜欢搞环境变量,cygwin也不例外,毕竟是从Linux过来的东西。配置过环境变量的人都应该轻车熟路,我的是vista系统,其他系统如何设置环境变量可以上网Google,不难:
右击我的电脑->属性->高级环境设置->环境变量,然后在系统变量里面找到path这个变量,双击,在原有的基础上加上cygwin的bin路径(注意,每个路径之间需要有分号隔开)。例如我的cygwin是保存在D:\linux\linux,那么加入的环境变量路径就是D:\linux\linux\bin。
然后点击确定,保存。按ctrl+r,在弹出的cmd对话框中试试以下命令是否ok?
输入:make –v会有make的版本信息打印出来,同理gcc –v,gdb -v和g++ -v也都有版本信息打印出来,这些没问题了,就表明cygwin的配置到此结束了。
2. 配置eclipse
首先,启动eclipse,在菜单中点Windows->preferences,然后勾上图中所示选项,这是让cygwin编译生成Windows的PE文件:
若之后调试时出现no binaries错误(设置上面这一步不太可能出现这个问题),则去菜单project->preferences,勾下面图中这个选项:
接着就可以新建工程了,打开eclipse,新建一个C++工程:
点击next,然后输入项名称,并在tool chain上选cygwin
没有cygwin这个tool chain怎么办?那就选other tool chains,最后点finish,项目就生成了:
如果之前选的是other tool chains是没有includes这个目录的,这个includes目录怎么出来的呢?右击项目名称,选properties,在弹出的对话框中选择C/C++ build->Tool chain Editor:
在current toolchain的下拉列表中选cygwin,如果下拉列表没有cygwin,就把上面那个Display compatible tool chain only那个勾去掉,下拉列表就会出现cygwin了。请确保usedtools中包含cygwin的C++ compiler和linker,若不包含,就点select tools按钮加上,这个操作很直观,就不截图了。
确定保存这些选项后,回到主界面,这个时候就会发现includes目录出现了。
接着,单击New按钮,也可以右击工程名,选择New,新增一个cpp文件:
输入经典的hello world:
按理来说这个时候点击就可以编译链接程序了:
但这里只会编译链接,但不会运行,也不会调试程序,而是出现没有找到program的错误。eclipse没有送佛送到西,好人做到底,我们还得手动做个简单的配置:
进入debug configuration对话框,选择C/C++application->test debug:(test是我的工程名)
点击search project按钮,在弹出的对话框中:
选择刚才编译出来的exe文件,再试一次:
Hello world终于打印出来了:
这个时候你可以设置断点,单步调试程序了,配置基本到此结束,开始享受传说中的gcc/g++和gdb吧
eclipse下使用cygwin的方法(Windows下用eclipse玩gcc/g++和gdb)的更多相关文章
- 3.Ubuntu下安装mysql并在windows下使用Navicat来连接
一.安装mysql(只需要三条命令) 1.第一条命令(中间需要输入root用户密码): sudo apt-get install mysql-server 2.第二条命令: sudo apt-get ...
- Linux学习笔记之如何把ubuntu下的c文件共享到windows下文件夹
1.首先可在桌面新建文件夹,或者自己任意路径文件夹都可以, 2.在Linux下点击虚拟机 点击设置 点击选项,选择共享文件夹,点击总是启用,然后添加文件夹,添加你windows下想保存的文件夹 可 ...
- 自己通过Cygwin编译的windows下的redis3.2.6
采用方法:https://my.oschina.net/maxid/blog/186506 方法中在3.2.6未找到src/redis.h文件 未修改 方法中 /deps/hiredis/net.c ...
- CentOS7下rsync服务端与Windows下cwRsync客户端实现数据同步配置方法
最近需求想定期备份服务器d盘的数据到Linux服务器上面,做个笔记顺便写下遇到的问题 以前整过一个win下的cwrsync(客户端)+rsync(服务端:存储)的bat脚本 和整过一个Linux下的r ...
- 设置QT应用程序图标方法(Windows下)
学习笔记,言简意赅. 1- 新建文本文件,编辑输入 IDI_ICON1 ICON DISCARDABLE "./image/WindowIco.ico" 注意: ...
- [方法] Windows 下SSH远程连接Linux
考虑到Linux服务器自带SSH服务,并且SSH服务开机启动. 因此,方法如下: 安装putty 输入Linux服务器IP地址 此外,如果想远程重启Linux服务器,在命令行中输入reboot即可.
- 转:LINUX/UNIX下的回车换行与WINDOWS下的区别
今天,我总算搞清楚“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别了.在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 3 ...
- CentOS7 下 配置Docker远程访问 与 windows下使用maven构筑Spring Boot 的 Docker镜像到远程服务端
1.设置Docker服务端,以支持远程访问: 修改docker服务端配置文件,命令: vim /usr/lib/systemd/system/docker.service 修改后: [Unit] De ...
- Linux下原子性操作,类似Windows下的InterLockedXXX
其中,这些操作的操作数(type) 可以是1,2,4或8字节长度的int类型,即: int8_t / uint8_t int16_t / uint16_t int32_t / uint32_t int ...
随机推荐
- Java Web应用软件保护方法
1 代码混淆概述目前针对Java源文件方法主要有以下几种方法:本地编译技术.数字水印技术.ClassLoader加密技术以及代码混淆技术.Java本地编译是指将Java应用程序编译成本地应用程序,如W ...
- js自动补全实例
var oInputField ,oPopDiv , oColorsUl,aColors; //初始化变量 function initVars(modelId,divId,ulId){ oInputF ...
- strcat实现
//将源字符串加const,表明其为输入参数 char*strcat(char*strDest,constchar*strSrc) { //后文returnaddress,故不能放在assert断言之 ...
- WhyDX9:翻写D3D红龙书中的程序
之前写过一套学习OpenGL的框架:WhyGL,即然有了GL那也应该再写个学习D3D的框架:WhyDX9.两个程序的架构相同,然后这个程序是将D3D红龙那本书的DEMO翻写了一遍.先将可执行程序发一下 ...
- cesiumjs学习笔记之三——cesium-navigation插件 【转】
http://blog.csdn.net/Prepared/article/details/68940997?locationNum=10&fps=1 插件源码地址:https://githu ...
- Divide Two Integers leetcode java
题目: Divide two integers without using multiplication, division and mod operator. 题解: 这道题我自己没想出来...乘除 ...
- mybatis异常 :元素内容必须由格式正确的字符数据或标记组成。
今天同事写一个查询接口的时候,出错:元素内容必须由格式正确的字符数据或标记组成. 错误原因:mybatis查询的时候,需要用到运算符 小于号:< 和 大于号: >,在mybatis配置文 ...
- 【leetcode】 9. palindrome number
@requires_authorization @author johnsondu @create_time 2015.7.13 9:48 @url [palindrome-number](https ...
- 县级以上联动js实现无需数据库的行政区域下拉控件
代码共享url: http://code.google.com/p/region-select-js/ 数据已经更新到中国统计局网站中的2012年的那批数据(制作后未核对); 下拉使用div模拟实现. ...
- Gh0st整理资料1
题首 Gh0st是一款开源的远程控制软件.界面友好,性能高效.网上流传很多版本,比如红狼,饭客,败笔,大灰狼版本以及多如牛毛的个人修改的如外星人,Drat等个人修改版本.但内核都是基于Gh0st3.6 ...