Download - Linux 编程工具
Linux 编程工具
内容
•Code::blocks
•Vim
•GCC
•GDB
Code::blocks
• 一个开放源码的全功能的跨平台 C/C++ 集成开发环境
• 由纯粹的 C++ 语言开发完成,它使用了著名的图形界面库 wxWidgets
• 可扩展插件,有插件向导功能,让你很方便的创建自己的插件
• 本身不提供编译功能,但能通过调用第三方编译代码
3
Code::blocks 界面
Code::blocks 编辑调试界面
如有需要,请自学Code::blocks 的使用
Linux 下 c/c++ 程序开发
编辑器 (vi & vim)
• vi 是 linux 系统最重要的文本编辑器,所有的 Unix-Like 系统都会内置。
• vim 从 vi 发展出来的,完全兼容 vi ,并扩展了很多额外的强大功能。
• vim 的官方网站称自己是一个“程序开发工具”,而非简单的文字处理软件。
为什么 Vim
• 所有的 Unix Like 系统都会内建 vi 文本编辑器,其他的文本编辑器则不一定会存在
• vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计
• 因为程序简单,编辑速度相当快速
Linux 下 c/c++ 程序开发
编译器 (GCC/G++)
• GCC(GNU Compiler Collection , GNU 编译器集合 )• 被大多数 Unix-like 操作系统采纳为标准编译器,也
适用 Windows• 原名 GNU C Compiler ,只处理 C 语言• 之后扩展可处理 C++ 、 Fortran 、 Pascal 等其他
语言
• GCC 和 G++ 都是 GNU 的编译器• 两者都可以编译 c 代码和 c++ 代码
• 后缀为 .c 的 , gcc 把它当作是 c 程序 , 而 g++ 当作是 c++ 程序;
• 后缀为 .C / .cc / .cpp 的 , 两者都会认为是 c++ 程序 .
Linux 下 c/c++ 程序开发
调试器 (GDB)
• GNU 开源组织发布
• 一个强大的 linux 下的程序调试工具
• 主要功能:1. 启动你的程序,可以按照自定义的要求随心所欲
的运行程序。2. 可让被调试的程序在你所指定的断点处停住。3. 当程序被停住时,可以检查此时你的程序中所发
生的事。4. 动态的改变你程序的执行环境。
Linux 下 c/c++ 程序开发
makefile & make• 一个软件项目通常包含多个源码文件
• 每个源代码的编译和可执行文件的链接都要书写大量的命令 . 如 Linux 下进行编译要大量调用 gcc 来处理
• 如果用 IDE 开发环境 , 这编译和链接一般由 IDE 自动完成• 但绝大部分 Linux 和开源项是使用 gcc 之类命令行工具来
编译,如 MySQL 、操作系统本身
• 有些项目里,代码通常有引用的关系,需要编译的先后顺序
• Makefile 就为解决上述一系统问题而创造的
• make 是一个命令工具,是一个解释 makefile 中指令的命令工具
举例ex_main.cpp ex_output.cpp#include <stdio.h>#include "ex_output.h"int main(){
display("Hello world!\n");
return 0;}
#include <stdio.h>
int display(const char *str){
printf( "The str is %s\n", str );
return 0;}
g++ -c ex_main.cpp ex_output.cppg++ -0 ex_main ex_main.o ex_output.o
• makefile
main: ex_main.o ex_output.og++ -o ex_main ex_main.o
ex_output.o
ex_main.o:ex_main.cppg++ -c ex_main.cpp
ex_output.o:ex_output.cppg++ -c ex_output.cpp
Vim 的使用介绍
模式• Normal 模式
• i 键切换到 insert 模式• : 键切换到命令行模式
• Insert 模式• 输入文本• Esc 键,切换到 noraml 模式
• 命令行模式• Normal 模式下按
Normal 模式常用操作• i :切换到 Insert 模式
• :wq → 存盘 + 退出 (:w 存盘 , :q 退出, :w 后可以跟文件名)• :q 退出• :q! 不存盘退出
• dd :删除当前行,并将删除的内容存到剪贴板
• p: 粘贴剪贴板
• 强烈建议使用 hjkl
命令行模式• Normal 模式下按 : 键进入
• 常用
:q! 不保存退出 vim 。:w 保存文档,但不退出 vim 。:x 保存退出 vim 。:! command 运行 shell 命令。:e filename 编辑 /打开一个文件
自学推荐• http://linuxconfig.org/vim-tutorial
• http://coolshell.cn/articles/5426.html
GCC 编译的步骤
在预处理阶段,输入的是 C 语言的源文件,通常为 *.c 。它们通常带有 .h 之类头文件的包含文件。这个阶段主要处理源文件中的 #ifdef 、 #include 和#define 命令。该阶段会生成一个中间文件 *.i 。实际工作中通常不用专门生成这种文件,因为基本上用不到;若非要生成这种文件不可,可以利用下面的示例命令:gcc -E test.c -o test.i
在编译阶段,输入的是中间文件 *.i ,编译后生成汇编语言文件 *.s 。这个阶段对应的 GCC 命令如下所示:gcc -S test.i -o test.s
在汇编阶段,将输入的汇编文件 *.s转换成机器语言 *.o 。这个阶段对应的 GCC 命令如下所示:GCC -c test.s -o test.o
在连接阶段将输入的机器代码文件 *.s(与其它的机器代码文件和库文件)汇集成一个可执行的二进制代码文件。这一步骤,可以利用下面的示例命令完成GCC test.o -o test
GCC 常用模式• $ GCC -c test.c
• $ GCC -o test
• $ GCC -o test first.c second.c third.c
• $ gcc -Wall test.c -o test• 在众多的警告选项之中,最常用的就是 -Wall选
项。该选项能发现程序中一系列的常见错误警告
GDB 使用入门• gcc –g 选项
• 调用 gdb
• file: 调用可执行文件
• r: 执行
• b: 设置断点
• c: 继续执行直到下一个断点
• s :执行一行代码,如有函数,则进入
• n: 执行一行代码,如有函数,则调用一并执行
• p : print ,可以查看变量的值 , 例如: p n
b < 行号> 例如: b 8 b <函数名称> 例如: b main
示例代码
• 编译时加上参数 – g• g++ 1.cpp –o mytest -g
gdb mytest
调试过程
GDB 使用参考• http://cs.baylor.edu/~donahoo/tools/gd
b/tutorial.html
• http://www.cprogramming.com/gdb.html
• http://blog.csdn.net/lyjtynet/article/details/4057723
上机实验内容• 熟悉 Linux 环境
• 启动软件、安装软件• 使用终端• 常用命令
• 掌握: ls, cd, pwd, mkdir, rm, rmdir, mv, cp, cat, more , whereis,chmod, ps, kill, jobs, bg, fg,
• 了解: tar, gzip, grep, wc, wget
• 熟悉 linux 下的编程环境• 推荐 vim + gcc + gdb• 可以使用 code::blocks