1 / 31

Linux 编程工具

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

Télécharger la présentation

Linux 编程工具

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Linux编程工具

  2. 内容 • Code::blocks • Vim • GCC • GDB

  3. Code::blocks • 一个开放源码的全功能的跨平台C/C++集成开发环境 • 由纯粹的C++语言开发完成,它使用了著名的图形界面库wxWidgets • 可扩展插件,有插件向导功能,让你很方便的创建自己的插件 • 本身不提供编译功能,但能通过调用第三方编译代码

  4. Code::blocks界面

  5. Code::blocks编辑调试界面 如有需要,请自学Code::blocks的使用

  6. Linux下c/c++程序开发

  7. 编辑器(vi&vim) • vi是linux系统最重要的文本编辑器,所有的 Unix-Like 系统都会内置。 • vim从 vi 发展出来的,完全兼容vi,并扩展了很多额外的强大功能。 • vim 的官方网站称自己是一个“程序开发工具”,而非简单的文字处理软件。

  8. 为什么Vim • 所有的 Unix Like 系统都会内建vi 文本编辑器,其他的文本编辑器则不一定会存在 • vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计 • 因为程序简单,编辑速度相当快速

  9. Linux下c/c++程序开发

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

  11. Linux下c/c++程序开发

  12. 调试器(GDB) • GNU开源组织发布 • 一个强大的linux下的程序调试工具 • 主要功能: • 启动你的程序,可以按照自定义的要求随心所欲的运行程序。 • 可让被调试的程序在你所指定的断点处停住。 • 当程序被停住时,可以检查此时你的程序中所发生的事。 • 动态的改变你程序的执行环境。

  13. Linux下c/c++程序开发

  14. makefile & make • 一个软件项目通常包含多个源码文件 • 每个源代码的编译和可执行文件的链接都要书写大量的命令.如Linux 下进行编译要大量调用gcc来处理 • 如果用IDE开发环境, 这编译和链接一般由IDE自动完成 • 但绝大部分Linux和开源项是使用gcc之类命令行工具来编译,如 MySQL、操作系统本身 • 有些项目里,代码通常有引用的关系,需要编译的先后顺序 • Makefile就为解决上述一系统问题而创造的 • make是一个命令工具,是一个解释makefile中指令的命令工具

  15. 举例 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.cppex_output.cpp g++ -0 ex_mainex_main.oex_output.o

  16. makefile main: ex_main.oex_output.o g++ -o ex_mainex_main.oex_output.o ex_main.o:ex_main.cpp g++ -c ex_main.cpp ex_output.o:ex_output.cpp g++ -c ex_output.cpp

  17. Vim的使用介绍

  18. 模式 • Normal模式 • i键切换到insert模式 • :键切换到命令行模式 • Insert模式 • 输入文本 • Esc键,切换到noraml模式 • 命令行模式 • Normal模式下按

  19. Normal模式常用操作 • i:切换到Insert模式 • :wq→ 存盘 + 退出 (:w 存盘, :q 退出,:w 后可以跟文件名) • :q 退出 • :q!不存盘退出 • dd:删除当前行,并将删除的内容存到剪贴板 • p: 粘贴剪贴板 • 强烈建议使用hjkl

  20. 命令行模式 • Normal模式下按:键进入 • 常用 :q! 不保存退出vim。 :w 保存文档,但不退出vim。 :x 保存退出vim。 :! command 运行shell命令。 :e filename 编辑/打开一个文件

  21. 自学推荐 • http://linuxconfig.org/vim-tutorial • http://coolshell.cn/articles/5426.html

  22. GCC编译的步骤 在汇编阶段,将输入的汇编文件*.s转换成机器语言*.o。这个阶段对应的GCC命令如下所示: GCC -c test.s -o test.o 在编译阶段,输入的是中间文件*.i,编译后生成汇编语言文件*.s 。这个阶段对应的GCC命令如下所示: gcc-S test.i -o test.s 在预处理阶段,输入的是C语言的源文件,通常为*.c。它们通常带有.h之类头文件的包含文件。 这个阶段主要处理源文件中的#ifdef、 #include和#define命令。该阶段会生成一个中间文件*.i。 实际工作中通常不用专门生成这种文件,因为基本上用不到;若非要生成这种文件不可,可以利用下面的示例命令: gcc -E  test.c -o test.i 在连接阶段将输入的机器代码文件*.s(与其它的机器代码文件和库文件)汇集成一个可执行的二进制代码文件。这一步骤,可以利用下面的示例命令完成 GCC test.o -o test

  23. GCC常用模式 • $ GCC -c test.c • $ GCC -o test • $ GCC -o test  first.csecond.cthird.c • $ gcc -Wall test.c -o test • 在众多的警告选项之中,最常用的就是-Wall选项。该选项能发现程序中一系列的常见错误警告

  24. GDB使用入门 • gcc –g 选项 • 调用gdb • file: 调用可执行文件 • r: 执行 • b: 设置断点 • c: 继续执行直到下一个断点 • s:执行一行代码,如有函数,则进入 • n:执行一行代码,如有函数,则调用一并执行 • p:print,可以查看变量的值, 例如:pn b <行号> 例如: b8 b <函数名称> 例如:bmain

  25. 示例代码

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

  27. gdbmytest

  28. 调试过程

  29. GDB使用参考 • http://cs.baylor.edu/~donahoo/tools/gdb/tutorial.html • http://www.cprogramming.com/gdb.html • http://blog.csdn.net/lyjtynet/article/details/4057723

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

More Related