Linux C 编程环境之工具链
来源:互联网 发布:php返回ajax请求 编辑:程序博客网 时间:2024/06/06 21:02
从理论上说编译一个程序依次需要下面几个工具:C预处理器-->词法分析器-->代码生成器-->优化器-->汇编程序-->链接器。linux下有两个软件包binutils、gcc包括了上面的所有工具。
1. binutils工具
Binutils 是一组很重要的开发工具,包括链接器(ld)、汇编器(as)、反汇编器(objdump)和其他用于目标文件和档案的工具(ar),也是gcc的依赖项。 可以通过下面的命令安装 apt-get install binutils
2. gcc(gnu collect compiler)
gcc完成了从"C预处理器"到"优化器"的工作,并提供了与编译器紧密相关的运行库的支持,如libgcc_s.so、libstdc++.so等。 其重要性不必再说,没它什么都干不了 ... ... apt-get install gcc
3. make
跟gcc一样大名鼎鼎,也一样重要 apt-get install make 其实上面三项可以通过一个软件包全部安装了,命令是 apt-get install build-essential (此命令还会将g++等工具也安装进来)
4. auto工具
make相关工具,也非常有必要 apt-get install autoconf automake
5. 调试器gdb
又是一个必备工具 apt-get install gdb
6. 其他实用工具
针对源代码
indent C程序美化器 ctags 创建标签文件,供vi编辑器使用。可以加快检查源文件的速度 lint C程序检查器
针对可执行文件
dis 反汇编工具 ldd 打印文件所需的动态连接信息 nm 打印目标文件中的符号表 strings 查看签入二进制文件中字符串 sum 打印文件的校验和与程序块计数 size 打印可执行文件中的各个段 readelf 分析elf格式的可执行文件(包括在binutils中) strip 去除调试信息和符号(包括在binutils中)
帮助调试工具
strace 打印可执行文件中的系统调用 ps 显示进程信息 file 检测文件格式
性能优化辅助工具
gprof prof time
附:Linux下常用开发工具文档链接收集
收集常用的Linux下文档的连接,希望大家通过回复不断贡献自己的书签,版主会 不断的加入到主贴中。贡献的文档要遵循下面两个原则:
1 文档内容用中文简体,繁体,或者英文编写 2 文档要是工具的官方或者官方推荐的文档
1 编译器 1.1 gcc 编译器 http://gcc.gnu.org/onlinedocs/ 小提示:如果你要查找某个编译选项,先从每个版本的[Option Summary]开始 查起,例如你要查3.4.6的某个编译选项 http://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/Option-Summary.html#Option-Summary
2 工程工具 2.1 GNU Make http://www.gnu.org/software/make/manual/
3 文本处理工具 3.1 sed http://sed.sourceforge.net/#docs 3.2 vim 中文: http://cosoft.org.cn/projects/vcd/ 英文: http://www.truth.sk/vim/vimbook-OPL.pdf
4 库 4.1 pthread库 http://www.opengroup.org/onlinepubs/007908799/xsh/pthread.h.html
- Linux C 编程环境之工具链
- linux c编程工具使用之gdb
- APUE [Linux C 编程开发环境(工具链,编译,汇编,链接,库)基础知识与实践]
- linux环境下的c++编程之工具篇
- Linux-C编程-环境编程
- Linux下C编程笔记之环境配置
- 读书之《Linux环境下C编程指南》
- Linux下C编程笔记之环境配置
- Linux环境下C编程指南(第二版) -- gdb调试工具
- Linux环境下C编程指南(第二版) -- gdb调试工具
- 复习linux C编程(三)之 linux下的C语言环境
- Linux环境编程之进程
- Linux环境编程之信号
- 【Linux&C++】Linux环境下C++编程
- 【Linux基础】Linux C编程环境
- 【Linux开发技术之工具使用】配置VIM下编程和代码阅读环境
- 【Linux开发技术之工具使用】配置VIM下编程和代码阅读环境
- Linux下c编程工具的使用
- Mysql:This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' 错误解决
- 必看**Java三大主流框架概述
- .metadata\.plugins\org.eclipse.wst.server.core\tmp2\wtpwebapps\globalReport_backupdoesnot exist
- 前台线程与后台线程,AfxGetApp->GetMainWnd()与AfxGetMainWnd的不同
- CSS里的style标签内为什么要加html注释符
- Linux C 编程环境之工具链
- assert函数浅析
- yii的mvc流程简介和一些debug
- 更安全地实现remember me
- 安装ubuntu14.04,并解决可能的问题
- Win10/UWP开发-Ink
- 彩色图像对比度
- i2c 相关知识总结
- 微信摇一摇页面代码