Cygwin 是一个用于 Windows 的类 UNIX shell 环境。 它由两个组件组成:一个 UNIX API 库,它模拟 UNIX 操作系统提供的许多特性;以及 Bash shell 的改写版本和许多 UNIX 实用程序,它们提供大家熟悉的 UNIX 命令行界面。前一个组件是一个 Windows 动态链接库 (DLL)。后一个组件是一组基于 Cygwin DLL 的程序,其中许多是用未经修改的 UNIX 源代码编译的。它们合在一起提供大家熟悉的 UNIX 环境。

Eclipse CDT 是 Eclipse 插件,它将把 Eclipse 转换为功能强大的 C/C++ IDE.

利用CDT和cygwin,eclipse可以在windows环境下开发c、c++程序

需要注意的是:CDT版本和Eclipse版本必须对应,否则加载插件不成功

1.下载Eclipse
首先在eclipse官网上下载GalEclipse IDE for C/C++ Developers (includes Incubating components)版本,
地址是http://www.eclipse.org/downloads/
2、下载并安装Cygwin
Cygwin的官方网站下载Cygwin的安装程序,Cygwin的官方网址是:http://www.cygwin.com/。安装文件名称setup.exe.
下载完成后,运行setup.exe程序,出现安装画面。直接点“下一步”,出现安装模式的对话框

1)选择安装模式

Cygwin有三种安装模式:
•Install from Internet,这种模式直接从Internet安装;
•Download Without Installing,这种模式只从网上下载Cygwin的组件包,但不安装;
•Install from Local Directory,这种模式与上面第二种模式对应,当你的Cygwin组件包已经下载到本地,则可以使用此模式从本地安装Cygwin。
一般选择第一种安装模式。
选择完成后,点击下一步。

3)选择cygwin安装根目录

这一步选择Cygwin的安装目录,以及一些参数的设置。

程序默认的安装位置是C:\cygwin\,如没有特殊要求,选择默认方式,点击“下一步”

4)指定下载存放目录

这一步是选择安装过程中从网上下载的Cygwin组件包的保存位置,这样下次可以继续不用连接网络,在本地安装。

选择完以后,点击“下一步”,
5)选择你的连接方式

一般选择“direct connection”,然后点击下一步

<>选择下载站点,为了获得最快的下载速度,我们首先在列表中寻找Cygwin中国镜像的地址
6)选择需要下载安装的组件包,
为了使我们安装的Cygwin能够编译程序,我们需要安装gcc,g++,make,gdb,默认情况下,gcc并不会被安装,我们需要选中它来安装。为了安装gcc,g++,make,gdb,“Devel”选项设为install.
  -Devel,是一组开发工具,包括连接器,汇编器和其他用于目标文件和档案的工具(gcc、make、gdb)。
以下进入安装过程。

<>安装完成后,启动cygwin环境,在cyg环境下输入:gcc –version
如果安装成功,则正常打印版本信息

3、安装cdt插件
打开eclipse,打开help-->install new software菜单项,在location项中输入:http://download.eclipse.org/tools/cdt/releases/indigo
一般情况下,把所有的安装选项都选上。
安装完之后,重启eclipse。
如能在Eclipse的Preferences上看到C/C++的配置,则说明插件安装成功

4、用eclipse运行一个hello world
1)新建一个c/c++项目 
2)为本项目设定编译值支持
C/C++ General -> Paths and Symbols
Includes TAB页增加本项目头文件路径
Library Paths 指定自定义库路径
Source Location 指定源码目录
C/C++ Build -> Tool Chain Editor
Current toolchains: Cygwin GCC
Current builder: Gnu Make Builder
C/C++ Build->Setting->Binary Parsers
选中Cygwin PE Parser
如果在新建项目的时候没有设置toolchain
  在项目上右键打开属性
  properties->C/C++ Build->Tool Chain Editor 按上面修改
3)debug常见错误
错误1:Can't find a source file at "xxxxx“Locate the file or edit the source lookup path to include its location
简单的说就是windows目录与unix文档目录间映射出了问题。由于GDB使用的unix格式的路径,而eclipse使用的是windows路径,导致找不到匹配的代码,需要手工设置:
在windows->preference->c/c++->debug->source lookup path中,添加一条目录映射,将/cygdrive/c映射为c:\,这样gdb将可正确找到存放于e盘相应目录下的源文件。映射有优先次序,将此条置于最上一条,即可正常调试。

错误2:launch failed no binaries错误,
原因:window->proferences的设置对 project不起作用,需要在 project-> properties 中对 c/c++ make project 的 binary parse 进行设置到 win 下。
project-->properties-->C/C++ Build-->Settings--->Binary Parsers
将PE Windows parser 打上勾

5、创建动态链接库

在Eclipse中创建新的C++工程,File->New->Project->C++->C++ Project,选择Shared Library。

编译之后将在工程目录下生成一个libshared.so文件,这就是我们要用的动态链接库文件

转载请注明出处与作者

出处:http://blog.sina.com.cn/staratsky

作者:流星

ctrl+B编译源文件

运行方法:

选中Cygwin PE Parser
如果在新建项目的时候没有设置toolchain
  在项目上右键打开属性
  properties->C/C++ Build->Tool Chain Editor 按上面修改。

注:debug常见错误
错误1:Can't find a source file at "xxxxx“Locate the file or edit the source lookup path to include its location
简单的说就是windows目录与unix文档目录间映射出了问题。由于GDB使用的unix格式的路径,而eclipse使用的是windows路径,导致找不到匹配的代码,需要手工设置:
在windows->preference->c/c++->debug->source lookup path中,添加一条目录映射,将/cygdrive/c映射为c:\,这样gdb将可正确找到存放于e盘相应目录下的源文件。映射有优先次序,将此条置于最上一条,即可正常调试。

错误2:launch failed no binaries错误,
原因:window->proferences的设置对 project不起作用,需要在 project-> properties 中对 c/c++ make project 的 binary parse 进行设置到 win 下。
project-->properties-->C/C++ Build-->Settings--->Binary Parsers
将PE Windows parser 打上勾

eclipse+cygwin+cdt搭建c/c++开发环境的更多相关文章

  1. MyEclipse 2015利用Cygwin+CDT搭建C/C++开发环境

    GitHub原文:https://github.com/x113773/testall/issues/22 首先安装Cygwin 1:首先去网站 www.cygwin.com 下载 Cygwin 的 ...

  2. 【转】Eclipse和PyDev搭建完美Python开发环境(Ubuntu篇)

    原文网址:http://www.cnblogs.com/Realh/archive/2010/10/10/1847251.html 前两天在Windows下成功地搭好了一个Python开发环境,这次转 ...

  3. Eclipse和PyDev搭建完美Python开发环境(Windows篇)(转)

      摘要:本文讲解了用Eclipse和PyDev搭建Python的开发环境. 十一长假在家闲着没事儿,准备花点时间学习一下Python. 今儿花了一个下午搭建Python的开发环境,不禁感叹————开 ...

  4. Android NDK r8 Cygwin CDT 在window下开发环境搭建 安装配置与使用 具体图文解说

    版权声明:本博客全部文章均为原创.欢迎交流.欢迎转载:转载请勿篡改内容,而且注明出处,谢谢! https://blog.csdn.net/waldmer/article/details/3272500 ...

  5. 分别用Eclipse和IDEA搭建Scala+Spark开发环境

    开发机器上安装jdk1.7.0_60和scala2.10.4,配置好相关环境变量.网上资料很多,安装过程忽略.此外,Eclipse使用Luna4.4.1,IDEA使用14.0.2版本. 1. Ecli ...

  6. Eclipse和PyDev搭建完美Python开发环境 Windows篇

    1,安装Python Python是一个跨平台语言,Python从3.0的版本的语法很多不兼容2版本,官网找到最新的版本并下载:http://www.python.org, 因为之前的一个项目是2版本 ...

  7. Eclipse和PyDev搭建完美Python开发环境(Windows篇)

    目录安装Pythonpython for eclipse插件安装配置PyDev插件测试 安装Python从网站上下载最新的版本,从http://python.org/download/下载.安装过程与 ...

  8. 使用Eclipse搭建C/C++开发环境(转)

    使用Eclipse搭建C/C++开发环境  文章出自:http://www.cnblogs.com/liuxianan/archive/2013/01/15/2861196.html 说明:网上有很多 ...

  9. 于Eclipse在建筑cocos2d-x的Android开发环境(避免cygwin)

    于Eclipse在建筑cocos2d-x的Android开发环境(避免cygwin) 在袭击几天学习Android开发之后,我開始转向cocos2d-x的Android开发了.因为自己曾经有了解过co ...

随机推荐

  1. IOS开发之深拷贝与浅拷贝(mutableCopy与Copy)详解

    copy与retain的区别: copy是创建一个新对象,retain是创建一个指针,引用对象计数加1.Copy属性表示两个对象内容相同,新的对象retain为1 ,与旧有对象的引用计数无关,旧有对象 ...

  2. 【微信小程序】在微信开发工具上七牛云的图片可以看到,但是在真机上看不到的原因解决

    在开发微信小程序过程中,在微信开发者工具上,七牛云的图片都可以展示出来,但是在真机上,七牛云的图片却展示不出来,也没有报404找不到或者不能加载图片的问题, 必须保证: 1.图片是用image加载的: ...

  3. 玩转kafka

    http://zookeeper.apache.org/releases.html#download http://kafka.apache.org/downloads.html(下载最新 二进制版本 ...

  4. 物联网(IoT)的11大云平台:AWS、Azure、谷歌云、Oracle、

    物联网(IoT)的11大云平台:AWS.Azure.谷歌云.Oracle. 2018-11-06 14:02 云技术 关键词:物联网AzureGoogleSalesforce云计算 导读:现在,我们将 ...

  5. 用Python语言写Hadoop MapReduce程序Writing an Hadoop MapReduce Program in Python

    In this tutorial I will describe how to write a simple MapReduce program for Hadoop in the Python pr ...

  6. 使用supervisor过程的坑

    1.安装:由于使用的是公司的虚拟机,所以使用pip install supervisor的过程遇到很多权限问题. 中间尝试使用sudo pip install supervisor的方式安装,但是使用 ...

  7. C++经典排序算法总结

    转发请注明出处:https://www.cnblogs.com/fnlingnzb-learner/p/9374732.html 最近在研究一些经常用到的东西想把它们做一个汇总,想了想用到最多的应该是 ...

  8. longest-substring-with-at-least-k-repeating-characters

    https://leetcode.com/problems/longest-substring-with-at-least-k-repeating-characters/ public class S ...

  9. JavaScript数组与字符串常用方法总结

    先来一段代码引子: var str='hello world'; alert(str.charAt());//通过下标查找值: alert(str.indexOf());//通过值查找字符串下标:没有 ...

  10. 即时通讯之smack客户端配置

    之前学习了通过Openfire+spark+smack的模式来完成我们的即时通讯软件,上次我们已经完成了Openfire的安装和配置,这次我们继续完成我们的客户端部分. 1.首先我们通过百度smack ...