Eclipse 4.4.1 (Luna) for C/C++ Programming

Eclipse 4.4.1 (Luna) for C/C++ Programming

目录

    • Eclipse 441 Luna for CC Programming

      • 目录
      • Eclipse 441 Luna安装CC Development ToolCDT
      • 在 Eclipse 中编写第一个 CC 程序
        • C 程序
        • C 程序
        • C Program with Makefile
      • 阅读文档
      • Eclipse CDT中调试 CC 程序
      • Eclipse 使用技巧
        • 使用 GCC 进行 CC 开发
      • Eclipse 中的File IO
      • 参考资料

Eclipse是一个开源的集成开发环境 (IDE)。官网在这儿。Eclipse主要用来做Java开发。它也可以通过插件的方式支持C/C++, PHP, Python, Perl, 以及其他web项目的开发。Eclipse同时也是跨平台的开发环境,可以运行在Windoes, Linux和Mac OS下。

查看英文原文


Eclipse 4.4.1 (Luna)安装C/C++ Development Tool(CDT)


  • Step 0: 安装 MinGW GCC 或者 Cygwin GCC

    想用Eclipse来做C/C++开发,首先得需要一个C/C++编译器。在Windows上,需要安装 MinGW GCC 或者 Cygwin GCC。如果不确定该选哪儿款,就选MinGW吧,因为它更轻量级,更容易安装,不过所支持的特性也就少点儿了。

    1. MinGW GCC: 阅读 MinGW 安装指南
    2. Cygwin GCC: 阅读 Cygwin 安装指南。确保在安装的时候,在 Devel(Development) 目录下选中 gcc, g++, gdb以及make 这些包,因为默认安装是没有选中这些包的。
  • Step 1: 安装 Eclipse C/C++ Development Tool (CDT)

    有两种方式安装CDT,取决于本机上之前是不是安装过Eclipse:

    1. 如果之前安装过 Eclipse for Java Developers 或者其他的Eclipse安装包,那么你需要安装CDT插件,如下

      打开 Eclipse => Help => Install New Software => 在 Work with 的下拉框的下拉菜单里选择 Luna - http://download.eclipse.org/releases/luna (或者 Eclipse 4.3 选择 Kelper; 或者 Eclipse 4.2 选择 juno; 或者 Ecplise 3.7 选择 helois)。

      Name 复选框中展开 Programming Language => 选中 C/C++ Development Tools => 一路 Next => Finish.

    2. 如果之前没有安装过任何 Eclipse,那么可以在这里下载 Eclipse IDE for C/C++ Developers,然后解压到选择的文件夹。
  • Step 2: 配置

    只要 Cygwin 或者 MinGW 的 bin 文件夹处在系统的 PATH 环境变量中就够了,无需其他任何配置。CDT会通过搜索 PATH 找到 C/C++ 编译器。


在 Eclipse 中编写第一个 C/C++ 程序


C++ 程序

  • Step 0: 打开 Eclipse

    1. 在 Eclipse 安装目录运行 eclipse.exe
    2. 为你的工作空间选择合适的目录 (也就是你想把代码放在哪里)
    3. 如果 welcome 字样出现,点击 close 关闭
  • Step 1: 创建 C++ 工程

    对每个C++应用来说,都需要创建一个工程来保存所有的source codes (源代码), object files (.o 文件), executable files (可执行文件) 以及 relevant resources (资源文件)。

    创建 C++ 工程的步骤:

    1. 选择 File 菜单 => New => Project… => C/C++ => C++ project
    2. 弹出 C++ Project 对话框 =>

      Project name 框内输入 FirstProject =>

      Project Types 复选框内, 选择 Executable => Empty Project =>

      Toolchains复选框内, 选择编译器,比如 Cygwin GCC 或者 MinGW GCC => Next

    3. 弹出 Select Configurations 对话框,选中 DebugRelease => Finish.
  • Step 2: 编写一个 Hello-world C++ 程序
    1. Project Explorer (最左边的面板) 中 => FirstProject 右键(或者 点击 File 菜单) => New => Source File
    2. 弹出 New Source File 对话框
      1. Source File 框内,输入Hello.cpp
      2. 点击 Finish
    3. 源文件 Hello.cpp 出现在了编辑面板中。输入以下代码:
#include <iostream>
using namespace std;

int main() {
   cout << "Hello, world!" << endl;
   return 0;
}
如果发生 Unresolved Inclusion Error

如果出现 Unresolved Inclusion Error,说明 include paths for headers 没有设置正确。

选中 Project 菜单 ? Properties ? C/C++ General ? Paths and Symbols ? 在 Includes 选项卡中:

  • 对于 Cygwin GCC :

    1. Add 以下目录到 GNU C 下,$CYGWIN_HOME 是 Cygwin GCC 安装目录:

      • $CYGWIN_HOME\lib\gcc\i686-pc-cygwin\4.5.x\include
      • $CYGWIN_HOME\lib\gcc\i686-pc-cygwin\4.5.x\include-fixed
      • $CYGWIN_HOME\usr\include
      • $CYGWIN_HOME\usr\include\w32api
    2. Add 以下目录到 GNU C++ 下,$CYGWIN_HOME 是 Cygwin GCC 安装目录:
      • $CYGWIN_HOME\lib\gcc\i686-pc-cygwin\4.5.x\include\c++
      • $CYGWIN_HOME\lib\gcc\i686-pc-cygwin\4.5.x\include\c++\i686-pc-cygwin
      • $CYGWIN_HOME\lib\gcc\i686-pc-cygwin\4.5.x\include\c++\backward
      • $CYGWIN_HOME\lib\gcc\i686-pc-cygwin\4.5.x\include
      • $CYGWIN_HOME\lib\gcc\i686-pc-cygwin\4.5.x\include-fixed
      • $CYGWIN_HOME\usr\include
      • $CYGWIN_HOME\usr\include\w32api
  • 对于 MinGW GCC :
    1. Add 以下目录到 GNU C 下,$MINGW_HOME是 MinGW GCC 安装目录:

      • $MINGW_HOME\lib\gcc\mingw32\4.6.x\include
      • $MINGW_HOME\include
      • $MINGW_HOME\lib\gcc\mingw32\4.6.x\include-fixed
    2. Add 以下目录到 GNU C++ 下,$MINGW_HOME是 MinGW GCC 安装目录:
      • $MINGW_HOME\lib\gcc\mingw32\4.6.x\include\c++
      • $MINGW_HOME\lib\gcc\mingw32\4.6.x\include\c++\mingw32
      • $MINGW_HOME\lib\gcc\mingw32\4.6.x\include\c++\backward
      • $MINGW_HOME\lib\gcc\mingw32\4.6.x\include
      • $MINGW_HOME\include
      • $MINGW_HOME\lib\gcc\mingw32\4.6.x\include-fixed

注意: 为了找到头文件的路径,需要在 Cygwin 或者 MinGW 安装目录下搜索一下类似 stdio.h (C) 以及 iostream (C++)这样的头文件。

注意: 如果在 链接 (link) 时加载共享库出现 error while loading shared libraries 错误,请在 cygwin 中安libmpfr4

  • Step 3: Compile/Build

    Project Explorer (最左边的面板) 中 => FirstProject 右键(或者 点击 Project 菜单) => 选择 Build Project 编译链接整个程序 。

  • Step 4: Run

    Project Explorer (最左边的面板) 中 => FirstProject 右键(或者 点击 Run 菜单) => Run As => Local C/C++ Application => (如果弹出提示, 选择 Cygwin’s gdb debugger) ? 在 Console 面板,输出了结果 Hello, world!

注意: 你需要给每一个程序都创建一个C++工程。这对于玩具程序(指平时写的小程序)来说,比较烦!


C 程序

与上面的步骤相似,创建一个 C Project (而不是 C++ Project)。然后编译链接运行 Hello - world 程序 (Hello.c)。

#include <stdio.h>

int main() {
   printf("Hello, world!\n");
   return 0;
}

C++ Program with Makefile

在之前的例子中,我们使用的是所谓的 managed-make 方式来 build 程序 (这种方式下 Eclipse 会自动生成一个 makefile)。我们也可以自己手动编写 makefile 来控制整个的构建 (build) 过程。

  • Step 1: 创建一个 C++ Makefile 工程

    File菜单 ? New ? Project… ? C/C++ ? C++ project ? Project name框内, 输入HelloCppMakefile ? 在Project type框内, 选择Makefile Project, Empty Project ? Toolchains框内, 选择Cygwin GCC 或者 MinGW GCC。 忽略警告信息。

  • Step 2: 编写一个 C++ 程序

    右键一个工程 => New ? Source File ? 在Source file框内, 输入Hello.cpp ? 输入以下代码:

#include <iostream>
using namespace std;

int main() {
    cout << "Hello, world!" << endl;
    return 0;
}
  • Step 3: 编写Makefile

    右键一个工程 => New => File => File name 框下,输入 makefile => 输入以下代码。值得注意的是,缩进必须用 Tab 而不是 Spaces

all: Hello.exe

clean:
    rm Hello.o Hello.exe

Hello.exe: Hello.o
    g++ -g -o Hello.exe Hello.o

Hello.o: Hello.cpp
    g++ -c -g Hello.cpp
  • Step 4: Build 工程

    右键工程 ? Build Project

  • Step 5: Run the Program

    右键工程 ? Run As ? Local C/C++ Application

[未完成] 为一个工程下的若干个玩具程序编写一个makefile


阅读文档



至少,你应该通过 Eclipse 的 Welcome 页面或者 Help 菜单浏览 Eclipse的 Workbench User GuideC/C++ Development User Guide。这将会避免日后很多恼人的问题,节省您很多宝贵的时间。


Eclipse CDT中调试 C/C++ 程序



学会在在有图形界面的调试器中调试程序是一项很重要的技能。它会节省您非常多的时间,让您不用去猜测哪里出Bug了。

  • Step 0: 编写一个 C++ 程序

    下面这个程序计算并打印出 n 的阶乘 (=1*2*3*…*n)。但是,这个程序有一个逻辑错误,当 n = 20 的时候会得出一个错的值 (“The Factorial of 20 is -2102132736” - 你确定?一个负数?!”)

#include <iostream>
using namespace std;

int main() {
   int n = 20;
   int factorial = 1;

   // n! = 1*2*3...*n
   for (int i = 1; i <= n; i++) {
      factorial *= i;
   }
   cout << "The Factorial of " << n << " is " << factorial << endl;
   return 0;
}

// output
The Factorial of 20 is -2102132736

我们使用使用调试器来调试这个程序。

  • Step 1: 设置断点

    断点可以让程序在次数悬挂住而不往下执行,这样你就可以检查程序的内部状态(比如,变量的值等等)。在开始调试之前,你需要在程序中设置至少一个断点。双击编辑面板的左侧空白栏就可以打断点了。一个蓝色的小圈圈就表示断点成功设置了。

  • Step 2: 开始调试

    右键工程 (或者点击 Run 菜单) ? Debug As ? Local C/C++ Application ? 选择 Yes 来切换到 Debug 视图 (视图 是为了方便某个特定的开发任务,比如编辑或者调试,而对工具面板进行也定的排版)。 程序开始运行,然后在断点处暂停。

    如下图所示,高亮行(蓝色箭头所指的行)表明了下一步所要执行的语句。

  • Step 3: 单步执行,查看变量和输出

    点击 Step Over (单步执行)按钮 (或者选择 Run菜单下的 Step Over) 进行单补运行。每执行一步,检查变量的值 (在 Variable 面板里) 和程序的输出结果 (在 Console 面板里) , 如果需要的话,你可以把鼠标放在任何变量上,看一看变量的内容。

    单步执行,查看变量和输出这种方式是程序调试的终极奥义 - 因为它精确显示了程序在电脑上是怎么跑的。

  • Step 4: Breakpoint, Run-To-Line, Resume and Terminate

    如前所述,断点暂停了程序的运行并且让你检查程序的内部状态。双击某行左边的空白栏就可以设置断点 (或者是在 Run 菜单下选择 Toggle Breakpoint)。

    Resume 让程序继续运行,直到下一个断点,或者程序的结尾。

    在一个大数量级的循环里单步执行是很耗时间的,此时你可以在循环的外面设置一个断点,然后点击 Resume 来结束循环。

    或者,你可以把光标放在一行特别的语句上,然后在Run 菜单点击 Run-To-Line,让程序直接运行到此行。

    Terminate 按钮结束本次调试. 尽量每次都通过 Terminate 或者 Resume 到程序结尾的方式来结束本次调试。

  • Step 5: 切回 C/C++ 视图

    点击右上角的 C/C++ 视图图标切回 C/C++ 视图 (或者 Window 菜单 ? Open Perspective ? C/C++).

    一句话,调试很重要,去探索调试器的更多特性吧!

  • Other Debugger’s Features

    修改变量值: 可以在 Variable 面板里输入新的值来修改变量值。在不修改源代码的情况下,这种暂时修改程序表现的方式还是很方便的。

    Step-Into and Step-Return: 为了对函数进行调试, 你需要使用 Step-Into 按钮进入函数的第一个语句。也可以使用 Step-Return 按钮在函数的任何位置退出函数,返回到调用者。而且,也可以在函数内部设置断点。

注意: 如果在调试过程中,出现了Can’t find a source file at /cygdrive/c…, 那么需要在/cygdrive/cc:/之间做一个映射 (假设你的程序在 c 盘下):

Window ? Preferences ? C/C++ ? Debug ? Common Source Lookup Path, 选中 Add ? Path Mapping


Eclipse 使用技巧



请阅读 Java版本的Eclipse 使用技巧。都差不多。

使用 GCC 进行 C/C++ 开发

  • 可以在 $workspace\.metadata\.plugins\org.eclipse.cdt.ui\global-build.log 下查看 Eclipse CDT 中用于 build工程的命令。
  • 设置include-paths, library-paths, libraries: 当 build(构建) 一个程序的时候,编译器需要头文件来编译源文件; 链接器需要库文件来解析外部引用。编译器搜索 include-paths 来寻找 #include 指令包含的头文件。链接器搜索 library-paths 来寻找程序需要的 libraryies (库).

    在GCC中,include-path 会通过 -Idir 选项或者环境变量 CPATH 来指定。 library-path 会通过 -Ldir 选项或者环境变量 LIBRARY_PATH 来指定。库文件 libxxx.a 通过 -lxxx 选项来指定(小写字母 ‘l’, 没有 lib 前缀和 .a 扩展名)

    在Eclipse CDT中, 你可以设置 include paths, library pathslibraries

    右键工程 ? Properties ? C/C++ General ? Paths and Symbols ? 在 Includes , Library PathsLibraries 选项卡下,这个设置仅对选中的工程有作用。

    如果想设置所有项目的 include pathslibrary paths,设置环境变量 CPATH LIBRARY_PATH

    选择 Window 菜单 ? Preferences ? C/C++ ? Build ? Environment.

    另外, 你也可以把头文件和库文件拷贝到 系统(system) 目录下,这样你就可以不用管include-pathslibrary-paths了。

  • OpenGL with GLUT: 对于Cygwin, 你需要安装 gcc, g++, gdb, make (在 Devel 目录下) 以及opengl, freeglut (在 graphics 目录下). 头文件 gl.h, glu.h, glut.h 均在 $cygwin\usr\include\w32api\GL 下. 使用#include <GL/gl__.h>包含头文件 . 库文件 libopengl32.alibglu32.a 以及 libglut32.a 均在 $cygwin\lib\w32api 中. 为了在链接时使用这些库,使用 -lopengl32 -lglu32 -lglut32 选项(不需要 lib 前缀 和 .a 扩展名).
  • OpenGL with SDL: 从这里下载SDL . 选择 Development Libraries ? win32 ? mingw32 ? Unzip. 拷贝 头文件目录 SDL (在 include 目录下)到 $cygwin\usr\include\w32api; 拷贝 lib 目录下的所有库文件到 $cygwin\lib\w32api; 拷贝运行时库文件 SDL.dll (在 bin 目录下)到 Windows/System32。在你的程序中,包含以下两个头文件: #include \<SDL/sdl.h\>#include <SDL/sdl_opengl.h>

    为了链接通过,添加以下两个库: -lSDL -lSDLmain.

  • #pragma 注释指令: pragma 注释指令, 比如, #pragma comment(lib, “opengl32.lib”), 常常用来包含特定的库 (与 -l 选项功能一样)。这个依赖具体平台的指令在 Windows机器上可用,但是在 GCC 不能用。
  • multiple target patterns 错误信息: GNU make ($Cygwin\bin\make.exe) 有问题. 用这个代替覆盖。
  • fflush(stdout): gcc的库使用了缓存的I/O (与 C 的规范一致)。只有在一个换行符只有,输出才会被写到输出流。可以使用 fflush() 函数是立刻刷新缓存,写入输出流。
  • 工程名不应该含有 “setup”: 如果你的C/C++工程名含有 setup 这个词,那么生成的结果文件 ***setup***.exe会触发 UAC (User Authorization Control),并且需要管理员的权限来运行(这花了我好几个小时才弄清楚!可以试下把 hello.exe 改成 mysetup.exe)。

Eclipse 中的File I/O

请阅读 Java版本的Eclipse 中的File I/O


参考资料

  1. Eclipse的 C/C++ Development Tool User Guide, 通过 Eclipse的 Help 菜单可以看到.
  2. GCC (GNU compilers) 官网 ; GCC 手册
  3. An Introduction to GCC
时间: 2024-11-03 03:43:38

Eclipse 4.4.1 (Luna) for C/C++ Programming的相关文章

使Eclipse CDT 4.4 Luna 支持 c++ 11 的设置

用Eclipse Luna编译C++ 11源码总是出错,编译器用的mingw gcc,需要在CDT设置如下: 菜单: Window -> Preferences -> C/C++ -> Build -> Settings -> Discovery -> CDT GCC Build-in Compiler Settings 添加-std=c++11 右键项目属性: Properties -> C/C++ Build -> Settings -> Tool

[转]eclipse 配置黑色主题 Luna 方式三

虽然以前也使用eclipse的黑色主题,但是配置起来稍微麻烦一点. 这里先声明,下面的方式适合最新版本的Eclipse Luna,旧的版本可以下载我提供的这个插件,并将其放在eclipse目录下的plugins目录下即可. 插件下载地址:http://download.csdn.net/detail/csulennon/8372387 Eclipse LUNA 版本无需安装这个插件,因为已经自带了一个黑色的主题.现在把经验分享一下,先看效果: 对于长期使用电脑的程序猿们来说黑色不仅显得高端奢华,

TestNG 6.1.1 + eclipse Luna 4.4.0 + TestNG Eclipse 插件报错

相关信息: eclipse 32位 ---------------------------------- Eclipse Standard/SDK Version: Luna Release (4.4.0) Build id: 20140612-0600 jdk 1.8 本地安装 32位 ---------------------------------- java version "1.8.0_11" Java(TM) SE Runtime Environment (build 1.

(5) 使用 eclipse 阅读源码

eclipse 安装.配置 现在 google 已经停止了对 ADT Bundle 的支持,现在必须分开下载 eclipse.ADT 和 SDK. eclipse 下载地址(luna 4.4.1) http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/luna/SR1/eclipse-java-luna-SR1-linux-gtk-x86_64.tar.gz 安装 ADT To a

EGit插件安装(附Eclipse版本对应表)

最近eclipse添加egit插件,通过网上的方法下载安装后不显示git选项.通过官网了解到egit的版本对应相应的eclipse版本. 如果你安装了最新版本,需要先卸载重启eclipse后重新安装兼容的版本.否则会报错! 安装 找到你对应的Eclipse版本的EGit版本地址,输入之后选中所有.下一步下一步安装即可... 卸载 搜索--git 选中所有--Uninstall.提示重启Eclipse ------------------------------------------------

Eclipse J2EE+Maven+Tomcat(Jetty)构建Spring MVC项目

一步一步的我们试着使用Eclipse J2EE+Maven+Tomcat(Jetty) 搭建留住的web开发平台 Spring MVC的方法. 工具:Eclipse J2EE,Maven,Tomcat Eclipse J2EE+Maven+Tomcat(Jetty):http://www.eclipse.org/downloads/ Maven 3.3.3:http://maven.apache.org/download.cgi Tomcat 7.X:http://tomcat.apache.o

Scala简述、安装scala以及集成开发环境Scala Eclipse

一.Scala概述 可拓展 ?面向对象 ? 函数式编程 兼容JAVA ? 类库调用 ? 互操作  语法简洁 ? 代码行短 ? 类型推断 ? 抽象控制 静态类型化 ? 可检验 ? 安全重构 支持并发控制 ? 强计算能力 ? 自定义其他控制结构 二.安装scala IDE Eclipse(原生支持,使用比较复杂) IntelliJ(价格昂贵) NetBeans(程序可靠但插件笨重) CMD 通过CMD调用Scala解释器 方便.简单,易上手 运行环境:win7+jdk7+scala2.11.6 1.

eclipse中启动调试maven构建的javaweb项目

RT,遇到这个问题,我的第一反应就是找教程,今天折腾了一天,书也看了,博客也看了,maven视频都看了,有种做不出来的感觉了,带着前几个小时看的相关的资料和经验,就自己去摸索了. 直接开始说我是怎么做出来的,摸索过程就不啰嗦了. step0,我用的eclipse的版本是luna,maven用的是3.0,blog中演示的项目是从网上下载的.其次,检查检查一下,下面这个,只要是这样就对了,这个版本的eclipse好像默认就是这样的,如果不是的话,就要在右边的add中摸索一下,讲mavendepend

Eclipse(RustDT) + Racer + Windows 平台Rust开发环境搭建

[ 声明:版权所有,转载请注明出处,请勿用于商业用途. 联系信箱:[email protected]] 1.Rust 1.1 安装Rust 前往Rust官网下载各Windows平台安装文件,这里推荐大家下载稳定版.如果下载速度较慢,大家也可以点击打开百度云盘进行下载.下载完成后即可开始安装.整个安装过程都比较简单,Windows用户打开.msi安装文件.这里建议大家选择 高级模式,这样更加灵活,同时可以开启安装完成后自动添加环境变量到系统的功能.如图: 安装完成后,可以打开控制台,输入rust