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 ...
随机推荐
- Spring Boot Jar包转War包 部署到Tomcat下
原文:https://my.oschina.net/sdlvzg/blog/1562998 我们都知道springBoot中已经内置了tomcat,是不需要我们额外的配置tomcat服务器的,但是有时 ...
- Android之Android软键盘的隐藏显示研究
转自:http://blog.csdn.net/lilu_leo/article/details/6587578 看了很多这类型的文章,这篇文章最有价值,解决了我的烦恼,必须转. Android是一个 ...
- 利用Python爬虫爬取指定天猫店铺全店商品信息
本编博客是关于爬取天猫店铺中指定店铺的所有商品基础信息的爬虫,爬虫运行只需要输入相应店铺的域名名称即可,信息将以csv表格的形式保存,可以单店爬取也可以增加一个循环进行同时爬取. 源码展示 首先还是完 ...
- iframe跨域与session失效问题
何为跨域跨域session/cookie? 也就是第三方session/cookie.第一方session/cookie指的是访客当前访问的网站给访客的浏览器设置的seesion /cookie, 会 ...
- C# 实现的异步 Socket 服务器
介绍 我最近需要为一个.net项目准备一个内部线程通信机制. 项目有多个使用ASP.NET,Windows 表单和控制台应用程序的服务器和客户端构成. 考虑到实现的可能性,我下定决心要使用原生的soc ...
- Gh0st整理资料1
题首 Gh0st是一款开源的远程控制软件.界面友好,性能高效.网上流传很多版本,比如红狼,饭客,败笔,大灰狼版本以及多如牛毛的个人修改的如外星人,Drat等个人修改版本.但内核都是基于Gh0st3.6 ...
- nginx rewrite only specific servername to https
需求: 把某个域名的80端口服务 ----> 重定向转到 这个域名的 443端口的服务. server { listen 80; server_name xxx.abcd.com.cn; ...
- (转)NGUI类关系图
- what difference between libfm and libffm
https://www.kaggle.com/users/25112/steffen-rendle/forum Congratulations to Yu-Chin, Wei-Sheng, Yong ...
- C#.NET常见问题(FAQ)-如何清空stringbuilder
就红色的代码可以: System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append("hello" ...