参考:
1、 官方文档
2、 「C语言」Windows+EclipseCDT下的C语言开发环境准备
3、 「C语言」在Windows平台搭建C语言开发环境的多种方式
4、 Eclipse CDT环境下编写、调试、运行C++程序详谈
5、 Eclipse开发C/C++之使用技巧小结,写给新手
一 安装
- Eclipse 最初是 Java 开发,用于写 Java,后来拓展可以写 C、PHP…
- Eclipse 需要 Java 的运行环境,Eclipse CDT 是用来写 C 的,所以还需要 C 语言的编译器。
- 安装 Java 开发环境包(JDK)、编译器 MinGW(将 GCC 编译器和 GNU Binutils 移植到 Win32 平台下的产物,包括一系列头文件 Win32 API、库和可执行文件,安装教程)。
二 简介
- 简介:
按顺序:菜单栏、工具栏、侧边栏(显示当前目录文件调试文件等)、代码编辑区、调试信息信息显示、状态栏。 创建一个工程项目,菜单栏 File 中,会显示装好的 MinGW。
右键工程名,Build Configurations -> Build All,会多出三个文件夹( a)Binaries:存放所有编译后的二进制文件,这里主要是用于 Debug,Release 的二进制文件,而且 Binaries 目录只能在 Eclipse 中才能看到,从电脑磁盘上面是直接看不到的。/ b)Debug:里面包含两个文件(.exe与.o)。这里 .exe 文件是可以直接执行的文件,因为在 Debug 目录里面,表明它只用于 debug;而 .o 文件则是一个 object 文件,即目标文件,编译器产生的,对源代码的 “直译”,未经过连接等操作的目标代码。注意:代码编译后生成目标文件(即 . o文件),目标文件经过连接后才能变成.exe文件。/ c)Release:也包含两个文件(.exe与.o)。这里 .exe 文件是可以直接执行的文件,因为在 Release 目录里面,表明它只用于发布运行;.o文件则也是一个 object 文件,原理同 Debug 里面的 .o 文件。)
右键工程,在 Build Configurations -> Set Active 中设置使用 Release 还是 Debug 版程序。
点斧头图标是构建,只生成 Debug 的,但不会生成或更新 Release 文件夹。Build All 是全部重新编译。
菜单栏 Run,运行配置 Launch Configuration,描述了怎样运行程序,可以创建多个运行的方式(debug 程序,选择前面按钮以 Run 或 Debug 运行; release 程序选择 Run 运行);开发的时候使用 Windows 的命令行,来运行一些独立的程序用 External Tools Configurations。删除在 Run 菜单中的配置中右键删除。
菜单栏 Windows -> perferences 中是全部设置,Windows 菜单中选择是否显示一些状态栏。
单步调试:
见菜单栏按钮。断点调试方法:
参考博文:Eclipse C/CPP 调试教程调试信息变量值查看:
查看变量的值、汇编代码。
如下图。修改代码,可以看到,变量信息的十六进制数字并不是内存地址,是具体存的值。调试查看变量内存地址:
直接使用 gdb 命令调试:
参见 eclipse CDT中如何手动输入gdb命令。
三 基本设置等
代码提示:
Eclipse CDT 写 C 的功能没有 Eclipse 写 Java 的强大,可以在 perferences 中对编辑器设置。关于 Java 的代码提示设置见参考,修改增加触发点达到所有字母自动触发,CDT 则没有。调试带参数的程序:
“run” -> “run configuration” -> “arguments” 里面,设置程序参数。Eclipse CDT 调试时输入输出:
控制台(屏幕无输出)加上一行代码
setvbuf(stdout,NULL,_IONBF,0);
,问题解决见 参考。调试的时候 scanf 函数无法从键盘输入数据:(记得用
getchar();
读走上一行 scanf 函数留下的回车),在所有 printf 与 scanf 间清除输出的缓冲区数据,fflush(stdout);
问题参考 scanf doesn’t take input in debug mode in eclipse?。/ 如果无法解决,设置改用系统命令行来输入输出。命令行中在项目文件夹下新建 .gdbinit 文件,内容set new-console on
。参见 My Experiment With Eclipse: CDT Debugging with printf/scanf issue : Solution。
- 其它问题:
- printf 函数内不加
\n
可能会报错,debug 时也会报错。
四 构建方法小结
- 选中项目,右击。
- Set Active 来选择当前是构建 Debug 版本,还是 Release 版本。