linux 编程工具

31
Linux 编编编编

Upload: castor-barron

Post on 31-Dec-2015

130 views

Category:

Documents


0 download

DESCRIPTION

Linux 编程工具. 内容. Code : :blocks Vim GCC GDB. Code::blocks. 一个开放源码 的全功能的跨平台 C/C++ 集成开发环境 由纯粹的 C++ 语言开发完成,它使用 了著名的图形界面库 wxWidgets 可扩展插 件,有插件向导功能,让你很方便的创建自己的插 件 本身不提供编译功能,但能通过调 用第三方编译代码. Code::blocks 界面. Code::blocks 编辑调试界面. 如有需要,请自学 Code::blocks 的使用. Linux 下 c/ c++ 程序开发. 编辑器 (vi & vim). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Linux 编程工具

Linux 编程工具

Page 2: Linux 编程工具

内容

•Code::blocks

•Vim

•GCC

•GDB

Page 3: Linux 编程工具

Code::blocks

• 一个开放源码的全功能的跨平台 C/C++ 集成开发环境

• 由纯粹的 C++ 语言开发完成,它使用了著名的图形界面库 wxWidgets

• 可扩展插件,有插件向导功能,让你很方便的创建自己的插件

• 本身不提供编译功能,但能通过调用第三方编译代码

3

Page 4: Linux 编程工具

Code::blocks 界面

Page 5: Linux 编程工具

Code::blocks 编辑调试界面

如有需要,请自学Code::blocks 的使用

Page 6: Linux 编程工具

Linux 下 c/c++ 程序开发

Page 7: Linux 编程工具

编辑器 (vi & vim)

• vi 是 linux 系统最重要的文本编辑器,所有的 Unix-Like 系统都会内置。

• vim 从 vi 发展出来的,完全兼容 vi ,并扩展了很多额外的强大功能。

• vim 的官方网站称自己是一个“程序开发工具”,而非简单的文字处理软件。

Page 8: Linux 编程工具

为什么 Vim

• 所有的 Unix Like 系统都会内建 vi 文本编辑器,其他的文本编辑器则不一定会存在

• vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计

• 因为程序简单,编辑速度相当快速

Page 9: Linux 编程工具

Linux 下 c/c++ 程序开发

Page 10: Linux 编程工具

编译器 (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++ 程序 .

Page 11: Linux 编程工具

Linux 下 c/c++ 程序开发

Page 12: Linux 编程工具

调试器 (GDB)

• GNU 开源组织发布

• 一个强大的 linux 下的程序调试工具

• 主要功能:1. 启动你的程序,可以按照自定义的要求随心所欲

的运行程序。2. 可让被调试的程序在你所指定的断点处停住。3. 当程序被停住时,可以检查此时你的程序中所发

生的事。4. 动态的改变你程序的执行环境。

Page 13: Linux 编程工具

Linux 下 c/c++ 程序开发

Page 14: Linux 编程工具

makefile & make• 一个软件项目通常包含多个源码文件

• 每个源代码的编译和可执行文件的链接都要书写大量的命令 . 如 Linux 下进行编译要大量调用 gcc 来处理

• 如果用 IDE 开发环境 , 这编译和链接一般由 IDE 自动完成• 但绝大部分 Linux 和开源项是使用 gcc 之类命令行工具来

编译,如 MySQL 、操作系统本身

• 有些项目里,代码通常有引用的关系,需要编译的先后顺序

• Makefile 就为解决上述一系统问题而创造的

• make 是一个命令工具,是一个解释 makefile 中指令的命令工具

Page 15: Linux 编程工具

举例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

Page 16: Linux 编程工具

• 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

Page 17: Linux 编程工具

Vim 的使用介绍

Page 18: Linux 编程工具

模式• Normal 模式

• i 键切换到 insert 模式• : 键切换到命令行模式

• Insert 模式• 输入文本• Esc 键,切换到 noraml 模式

• 命令行模式• Normal 模式下按

Page 19: Linux 编程工具

Normal 模式常用操作• i :切换到 Insert 模式

• :wq → 存盘 + 退出 (:w 存盘 , :q 退出, :w 后可以跟文件名)• :q 退出• :q! 不存盘退出

• dd :删除当前行,并将删除的内容存到剪贴板

• p: 粘贴剪贴板

• 强烈建议使用 hjkl

Page 20: Linux 编程工具

命令行模式• Normal 模式下按 : 键进入

• 常用

:q! 不保存退出 vim 。:w 保存文档,但不退出 vim 。:x 保存退出 vim 。:! command 运行 shell 命令。:e filename 编辑 /打开一个文件

Page 21: Linux 编程工具

自学推荐• http://linuxconfig.org/vim-tutorial

• http://coolshell.cn/articles/5426.html

Page 22: Linux 编程工具

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

Page 23: Linux 编程工具

GCC 常用模式• $ GCC -c test.c

• $ GCC -o test

• $ GCC -o test  first.c second.c third.c

• $ gcc -Wall test.c -o test• 在众多的警告选项之中,最常用的就是 -Wall选

项。该选项能发现程序中一系列的常见错误警告

Page 24: Linux 编程工具

GDB 使用入门• gcc –g 选项

• 调用 gdb

• file: 调用可执行文件

• r: 执行

• b: 设置断点

• c: 继续执行直到下一个断点

• s :执行一行代码,如有函数,则进入

• n: 执行一行代码,如有函数,则调用一并执行

• p : print ,可以查看变量的值 , 例如: p n

b < 行号> 例如: b 8 b <函数名称> 例如: b main

Page 25: Linux 编程工具

示例代码

Page 26: Linux 编程工具

• 编译时加上参数 – g• g++ 1.cpp –o mytest -g

Page 27: Linux 编程工具

gdb mytest

Page 28: Linux 编程工具

调试过程

Page 29: Linux 编程工具
Page 31: Linux 编程工具

上机实验内容• 熟悉 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