用Eclipse完成C语言编程的几个简单步骤

2023-05-16

Eclipse是一款被广泛应用的开发工具,最初它是为编写Java程序而设计的,但由于它良好的架构并作为开源软件来发行,有很多的公司和个人以它为基础开发了插件,使得Eclipse有了越来越丰富的功能。

CDT (C/C++ Development Tooling)是Eclipse的一个插件,它为Eclipse提供了开发C/C++项目的支持,大家可以用它来编写自己的程序。

下面简单介绍一下Eclipse CDT的安装和使用方法。

Eclipse 的安装

Eclipse 是用 Java 语言编写的软件,要运行它,就必须首先安装 Java 虚拟机软件。要开发 C 语言的程序,就必须有 C 语言的 Toolchain( 编译器、链接器、调试器等各种系统工具 ) Eclipse 中并不提供这些功能,我们需要单独安装。


安装 Java 虚拟机

Win32

从校内FTP服务器 10.1.0.155下载 Java虚拟机,并运行安装。

Linux

Ubuntu Linux 中已经带有 Java 虚拟机,执行命令:

  • apt-get install sun-java6-jdk

便可以安装。


安装 Toolchain (编译器、链接器和调试器)

Win32

在Windows上,我们可以使用GNU为我们提供的Toolchain,其中一个比较容易使用的版本是MinGW,它包括了GNU GCC、binutils、gdb等工具包。

可以从ftp://10.1.0.155/pub/Develop/IDE/Eclipse.CDT/mingw.exe下载,下载后执行,并将它们解压到C盘根目录中。注意,必须是C盘的根目录,不要吝惜你的C盘,编译器这样重要的东西绝对有必要放在上面。解压后,MinGW即被安装在C:\mingw内。

如果你希望能够从命令行启动gcc等程序,可以修改PATH,并将C:\mingw\bin加入其中。


Linux

大多数的Linux系统都会安装有GNU的Toolchain,在Ubuntu Linux上,如果你的系统没有安装,请使用命令

  • apt-get install build-essential
来安装。

安装 Eclipse For C/C++

ftp://10.1.0.155/pub/Develop/IDE/Eclipse.CDT/下载跟自己的系统相对应的版本,并解压到磁盘上即可,不需要特殊的安装程序。这个版本的Eclipse,并未包含开发Java的功能。


运行Eclipse

在安装好Eclipse之后,执行该目录中的eclipse.exe和eclipse文件即可开启它。由于Eclipse是一个功能非常丰富的系统,启动它会需要一些时间,特别是在配置比较低的电脑上

选择Workspace

Eclipse一旦运行,便会弹出一个窗口,要求用户选择一个工作空间(Workspace),在Eclipse运行之后,所有的项目和文件缺省情况下都会存储在这个工作空间中,并且我们对Eclipse进行的任何设置也都是和Workspace相关联的。因此除非有特别的需要,没有什么必要经常切换工作空间。

选择好后点确定键,Eclipse会继续启动进程。

Eclipse窗口的组成

Eclipse的窗口由很多个部分组成,其中每一个部分称为一个View,而将一些View按照一定的布局组合在一起,则称为一个Perspective。每个View都有自己的功能,而不同的Perspective则通常适用于不同的工作。譬如"C/C++"这个Perspective通常用来做C/C++的开发,而"Debug"这个Perspective通常用来做Debug。

在屏幕的左上角,菜单的下面有按钮可以切换Perspective,同样,在Eclipse的菜单中也有项目专门用来做同样的事情。


开发C语言程序

创建项目

与TC开发不同,在Eclipse中开发程序,必须首先创建一个项目,然后才能在这个项目中编写自己的程序。否则即便编写了程序也没有办法编译、运行。创建项目的步骤如下:

  1. File | New | Project 见图

2. 输入项目的名字,注意不要使用中文,这可能导致一些奇怪的问题

3. 在Project Types中选择Hello World ANSI C Project,这个类型的项目对于我们的程序设计课程是很合适的,见图

4. 点击Finish按钮

这时在项目列表中就会看到新创建的项目。


打开源文件

展开项目内容列表,会发现其中有src目录,展开该目录,可以看到一个与项目同名的C文件,双击这个文件即可看到Eclipse为我们生成的一个很简单的Hello World程序。我们可以直接对其进行修改,编写自己的程序。


编辑源文件

编辑源文件并不困难,Eclipse会将代码用多种颜色显示代码,并且会在文件编辑的过程中为我们维护代码缩进。除此以外,Eclipse还为程序员编写源代码提供了很多方便的功能,代码代码重排版就是其中的一个。

代码重排版

在编写代码的过程中,由于各种的原因,代码的格式会发生变化,会混乱,不再符合我们课程提供的要求。这时,可以使用代码重排版直接调整代码的格式。具体的操作步骤为:

  1. Ctrl-A选择全部源代码
  2. Ctrl-Shift-F对代码进行重排版

排版之后的格式基本上是符合我们的要求的,同时看起来也会更清晰。

Build

编写好代码之后,在执行程序之前首先是编译链接,在Eclipse中,这个步骤称为Build Project。点击工具栏上的锤子图标,如下图中(1)所示


在Build时,若程序中有错误,Eclipse会将它显示出来。行首的红色或者黄色标记分别表示错误和警告,如图中(2)所示。错误的具体原因,会显示在屏幕的下方,如图中(3)所示。

如果有错误,Eclipse是不能生成最终的可执行文件的,在执行程序前,必须要修正所有的错误。

修改过源代码之后,Eclipse不会自动重新Build该项目,需要我们手工执行该操作,可以再次点击工具栏上的锤子型图标,也可以使用快捷键ctrl-b


执行程序

若Build Project成功,则可以运行程序。点击工具栏上的绿色Play图标或按快捷键“Ctrl-F11”即可运行程序。运行程序后,输入和输出都将在源代码编辑窗口下方的ConsoleView中进行,最简单的方法是把网页上的输入内容直接复制粘贴到Console中。



调试 C 语言程序


开始调试

调试程序和执行程序不同,调试程序时我们可以使用断点、单步执行、Watch等工具来查看程序的运行状态。在Eclipse中可以直接使用GDB来调试程序,点击工具栏上的“虫子”按钮或者按快捷键“F11”便可以调试过程。


调试视图

开始调试后,系统会弹出一个窗口并建议我们切换的调试视图,这时可以点击“Yes”。调试视图与编码视图不同,主要是在代码上方显示出了正在执行的进程和当前函数中自动变量的值。


监视变量的值

有时我们要监视的变量的值并没有直接显示出来,这时我们可以让它在Expression视图中来显示。


Step Into 与 Step Over

单步执行,就是每次执行一行程序,执行完这一行程序后,调试器会将程序执行暂停,这时我们就可以去查看变量的值。

Step Into与Step Over都是单步执行,其差别在于当我们定义了一个函数,并在调用该函数的语句行上单步执行时,是进入到函数的内部还是将函数作为一个整体来执行。对于标准库函数如printf和scanf等,即便是使用Step Into,Eclipse也不会对这个函数进行单步执行。


设置断点

单步执行虽然可以让我们监控到程序每一步的状态,但对于比较大比较长的程序来说,一步一步运行未免太浪费时间。这时我们可以使用断点功能,让程序在某个指定的位置停止下来,而不是每运行一行都停下来。

当程序的执行在断点处停下来后,要使其继续运行,可以使用“Resume”功能。


终止调试

Eclipse可以同时调试多个程序,为了避免占用太多的资源,当发现了程序中的错误后,就应该终止调试。如果不将它们终止,这些被调试的程序所占用的资源也就不能被释放,会使系统的速度变得很慢。


常见问题

为何使用数学函数后Build Project时会出错

数学函数,如sqrt和pow等虽然是C标准函数库的一部分,但它们被独立存储在数学函数库libm中,GCC在编译链接程序时,是不会自动链接该库的。我们必须手工修改配置让Eclipse在调用GCC编译链接程序时,将libm也加入到链接的文件列表中。具体的方法是:

  1. 在项目名称上点击鼠标右键,选择“Properties”
  2. 选择C/C++ Build | Setting
  3. 选择右侧的GCC C Linker下的Libraries
  4. 然后在Libraries(-l)列表中加上m,然后点OK
  5. 按Ctrl-b重新Build项目

如何方便地给编译添加参数

固然可以在project property里逐一添加参数,但有时候要添加几十条参数或者经常要换参数来测试编译,这样一来会很麻烦. 解决方法就是建立makefile项目(比如新建工程里的C++ makefile project). makefile文件里要求按照在终端输入的格式写入编译命令.非常方便修改. 


有那些编译器可以选择

Linux 下一般采用GCC和G++ Windows下可以使用GCC和G++移植版本,比如MinGW这类项目. Windows下也可以才用VC++的编译器,但是现在Windows SDK提供的C++编译器只能使用makefile来编译,其命令为nmake 



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用Eclipse完成C语言编程的几个简单步骤 的相关文章

  • Eclipse(STS)+ Maven

    我基本上有两个问题 有没有办法从 Eclipse 调用 Maven 控制台 我可以在哪里写eclipse eclipse 并开始构建 eclipse 项目 哪里有STS http www springsource com products
  • 如何在 Spring Boot 中创建 Apache POI Excel 视图配置

    当我想使用 Spring Boot Web 将数据导出到 Excel 时遇到问题 我使用 Thymeleaf 作为模板引擎 由 Spring Boot 自动配置 但是当我在附加配置中添加 XmlViewResolver 时 由 XmlVie
  • JavaDoc @see MyClass 构造函数返回警告“未找到引用”

    我正在尝试为我的客户端库创建 javadoc 在 MyOtherClass 中 我放置了下面的 see 并收到警告 MyOtherClass 和 MyClass 都位于同一项目中的不同包中 see MyClass Constructor T
  • 在 Eclipse 中突出显示修改的行

    在 netbeans 中 如果我打开一个受版本控制的文件 则修改的行会在左侧突出显示 绿色表示新行 蓝色表示修改行 在Eclipse中是否可以得到类似的效果 打开首选项窗口 搜索 差异 选择快速差异 将 使用此参考源 更改为 SCM 提供程
  • Eclipse,在哪里更改当前调试行背景?

    任何人都可以向我指出具有以下设置的首选项页面DEBUG当前行背景颜色 我已经将几乎所有颜色更改为深色 但在调试时仍然对这个几乎白色的当前行指示器感到恼火 请注意 编辑模式下的当前行指示是可以的 好吧 现在我自己找到了它 通过主要的逆向工程
  • 从不同的插件执行现有插件的命令/处理程序

    我有一个 RCP 应用程序 其中包含现有命令和处理程序 可以通过编程方式切换视角 我还有现有 RCP 应用程序使用的新插件 我希望这个新插件执行我的 RCP 应用程序的命令 处理程序 可能的解决方案是什么 您可能需要为该命令定义一个处理程序
  • Eclipse:缺少 Java 构建路径

    我正在尝试使用 Eclipse 来使用适用于 Android 的 Google SDK 教程 我能够让前两个项目正常工作 但是当运行第三个 R java 时消失了 所以我放弃了 我根据练习 3 的解决方案集制作了一个全新的包 它充满了错误
  • 以编程方式检查 .class 文件是否扩展特定类

    我有一个问题 我已经尝试解决好几个小时了 在 Eclipse 插件中 我有一个 ArrayList 其中包含一些 java class 文件的完整路径 作为字符串 我想做的是检查列表中包含的类是否扩展了特定的类 我考虑过解析该文件 查找 e
  • 将项目移动到 Eclipse 中的另一个文件夹

    我通常将工作项目放在桌面上的文件夹中 当它们完成后 我只是将它们移动到c dev 问题是我正在以一种相当古老的方式做这件事 1 move project files 2 delete project on Eclipse 3 create
  • 在 Eclipse 中的调试会话期间记录所有跟踪信息

    我想记录调试会话的每个步骤的所有调试信息 以便稍后处理所有这些数据 例如调用的方法的名称 参数值 所有变量值等 有没有任何选项可以实现此目的 我应该在哪里更改代码才能实现此目的 一件重要的事情 它不是一个 java 程序 这是一个使用 ac
  • Mediaplayer 播放几次后停止播放

    我有一个按钮 按下它会播放一个随机声音剪辑 然后播放另一个声音剪辑 然后通过一个媒体播放器播放另一个声音剪辑 但是多次按下该按钮 15 20 次 后 所有音频都会停止 我在播放最后一个音频剪辑后释放媒体播放器 所以我不认为这是原因 有什么指
  • Android 的代码覆盖率[重复]

    这个问题在这里已经有答案了 可能的重复 Android测试代码覆盖率 Eclipse https stackoverflow com questions 3282702 android test code coverage eclipse
  • 如何在eclipse或jar-file-explorer中查看jar文件的内容

    我正在开发一个项目 我需要知道我的网络项目中包含的 jar 文件的内容 我正在使用 Eclipse 朱诺 然而 Netbeans 提供了这些功能来查看 jar 文件的内容 请建议我如何在 eclipse 中实现这一点 在项目资源管理器中 您
  • 将非 Android 项目添加到 Android 项目

    我在 Eclipse 中有三个项目 Base Server 和 AndroidClient Base和Server是Java 1 7项目 而AndroidClient显然是一个android项目 基础项目具有在服务器和 Android 客户
  • Java:无法从同一包中的不同类访问静态变量

    这很奇怪 因为我有一个可以访问 Frame dimension getWidth 的 Character 类 及其伙伴 getHeight 但是当我想在 Map 类中使用它时 Eclipse 强调了它并且无法给我反馈 运行该程序最终会出现
  • Android ADT Eclipse 插件,parseSDKContent 失败

    我刚刚设置了我的第一个 Android 开发环境 其中包括 日食3 5 Mac OS X 10 5 适用于 x86 mac 的 Android SDK ADT Eclipse 插件 0 9 6 我已将 set PATH 设置为我的 SDK
  • 如何导入 org.apache.commons.lang3.ArrayUtils;进入 Eclipse [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我如何导入 org apache commons lang3 ArrayUtils 将库添加到 Ecl
  • 发生错误。请参阅日志文件 - eclipse juno

    每当我启动 Eclipse Juno 时 都会出现错误 发生错误 请查看日志文件 C Program Files eclipse configuration 1362989254411 log 有的网站说卸载jdk重新安装 我这样做了 但没
  • 未解决的包含:“cocos2d.h” - Cocos2dx

    当我在 Eclipse 中导入 cocos2dx android 项目时 我的头文件上收到此警告 Unresolved inclusion cocos2d h 为什么是这样 它实际上困扰着我 该项目可以正确编译并运行 但我希望这种情况消失
  • 在 Mac 上使用 Eclipse 进行 C++ 调试器

    当我最终设置我的 mac 来使用 eclipse 后 我无法调试 我尝试通过谷歌寻求帮助 但没有一个答案对我有用 所以 我需要有人帮助我在 eclipse 上安装和使用 c c 调试器 我安装了 Xcode 5 0 感谢您的帮助 Roy 您

随机推荐

  • 无人驾驶虚拟仿真(四)--通过ROS系统控制小车行走

    简介 xff1a 实现键盘控制虚拟仿真小车移动 xff0c w s a d 空格 xff0c 对应向前 向后 向左 向右 急停切换功能 xff0c q键退出 1 创建key control节点 进入工作空间源码目录 xff1a cd myr
  • 云台控制协议

    PELCO D与PELCO P协议 PELCO D 数据格式 xff1a 1位起始位 8位数据 1位停止位 xff0c 无校验位 波特率 xff1a 2400B S 命令格式 xff1a 字节1 字节2 字节3 字节4 字节5 字节6 字节
  • 继承中子类与父类构造\析构的调用和顺序

    1 子类被构造的时候会先调用父类的构造函数 2 子类析构的时候先析构子类后析构父类 3 如果直接用子类构造一个父类的对象 删除这个父类的对象不会调用子类的析构函数 xff0c 这就是引入虚析构函数的原因 xff01
  • 28335GPIO及外部中断配置介绍

    弄了两周终于把28335的启动流程 寄存器及中断向量表的映射方法 内存的划分等有了一个全面的了解 xff0c 今天看到久违的LED灯的闪烁 xff0c 顿扫阴霾 特在此总结下28335GPIO及外部中断配置介绍 其实对于一个微控制器 xff
  • DSP28335与AD7606通过SPI的串行数据交互

    弄了三天的DSP28335与AD7606的通信终于实现了 最终的方案是通过DSP28335控制AD7606的采样 xff0c 采集的数据通过SPI串口发送给28335 xff0c 然后28335通过串口发送给上位机显示 其实程序第一天就写好
  • 利用28335的epwm产生spwm波的总结

    一 SPWM设计简介 设计的内容是产生倍频的SPWM波 xff0c 也即是用的是同一个调制波 xff0c 两个桥臂上的载波相差180度 产生spwm时 xff0c 利用TB产生载波 xff0c 也即是三角波 xff08 计数方式采用增减模式
  • 段错误总结

    最近试着写了华为编程大赛的程序 xff0c 出现较多的一个问题是段错误 xff0c 由此看来对指针与边界的处理还不熟练 网上有些总结的很不错 xff0c 因此结合网上资料整理下 xff08 下面的还有些地方没有深究 xff0c 有时间继续深
  • 启发式算法总结

    下面是一些学习到的算法 xff0c 有些没有具体用到 xff0c 所以只是概念的解释 xff0c 方便自己以后回忆 一 粒子群算法 1 1基本思想 粒子群算法是模拟群体智能所建立起来的一种优化算法 xff0c 粒子群算法可以用鸟类在一个空间
  • 线程、进程通信再总结

    下面这个部分摘抄自网上 xff0c 谢谢贡献的作者 一 进程间的通信方式 管道 pipe xff1a 管道是一种半双工的通信方式 xff0c 数据只能单向流动 xff0c 而且只能在具有亲缘关系的进程间使用 进程的亲缘关系通常是指父子进程关
  • 结构体类型的动态数组操作

    链接 xff1a https www nowcoder com questionTerminal 6fc9a928c7654b0fbc37d16b8bd29ff9 来源 xff1a 牛客网 假如我们有3种月饼 xff0c 其库存量分别为18
  • 基于Linkit 7697的红绿灯控制系统

    1 硬件准备 LinkIt 7697 1 xff0c 继电器模块 1 xff0c 面包板 1 xff0c RGB LED灯 1 xff08 共阳极 xff0c 工作电流20mA xff0c 红灯压降2 2 2V xff0c 绿灯蓝灯压降3
  • 利用背包问题解决的双核处理问题

    一种双核CPU的两个核能够同时的处理任务 xff0c 现在有n个已知数据量的任务需要交给CPU处理 xff0c 假设已知CPU的每个核1秒可以处理1kb xff0c 每个核同时只能处理一项任务 n个任务可以按照任意顺序放入CPU进行处理 x
  • 简单整蛊室友,只需几行bat病毒代码

    为了让整蛊更方便 xff0c 不能搞什么花里胡哨 xff0c 所有直接使用bat代码来编写 首先新建1个txt文件 xff0c 更改为任意名称 xff0c 但后缀名必须更改为bat或com 然后右键编辑 再输入以下代码 xff1a star
  • 四轴飞行器,PID调节过程心得记录

    初次接触四轴 xff0c 编写四轴的姿态PID控制部分 xff0c xff0c 横滚俯仰是把遥控器的杆量转换为目标角度 xff0c 然后目标角度PID运算转换为目标角速度 xff0c 然后目标角速度PID运算转换为电机输出量 xff0c x
  • 天地飞接收机输出信号解析

    今天测试了下天地飞8通道的接收机的pwm输出 接收机的输出信号 xff0c 可以按照50HZ的pwm信号来解析 xff0c 在stm32中 xff0c 使用外部高地电平触发中断的方式 xff0c 来记录一个脉宽的时间 用示波器实际查看信号的
  • Linux-TCP之深入浅出send和recv

    概念 先明确一个概念 xff1a 每个TCP socket在内核中都有一个发送缓冲区和一个接收缓冲区 xff0c TCP的全双工的工作模式以及TCP的滑动窗口便是依赖于这两个独立的buffer以及此buffer的填充状态 接收缓冲区把数据缓
  • popen使用方法及场景

    1 popen的应用场景 popen应用于执行shell命令 xff0c 并读取此命令的返值 xff0c 或者与执行的命令进行交互 2 popen的实现 popen 函数通过创建一个管道 xff0c 调用fork 产生一个子进程 xff0c
  • sscanf函数使用详解

    一 描述 sscanf通常被用来解析并转换字符串 xff0c 其格式定义灵活多变 xff0c 可以实现很强大的字符串解析功能 sscanf的原型 include lt stdio h gt int sscanf const char str
  • Linux通过系统函数设置系统时间

    一 描述 通过settimeofday 函数来设置系统时间 xff0c 这个函数设置的精度可以精确到微秒 include lt time h gt int settimeofday const struct timeval tv const
  • 用Eclipse完成C语言编程的几个简单步骤

    Eclipse是一款被广泛应用的开发工具 xff0c 最初它是为编写Java程序而设计的 xff0c 但由于它良好的架构并作为开源软件来发行 xff0c 有很多的公司和个人以它为基础开发了插件 xff0c 使得Eclipse有了越来越丰富的