linux GCC、GDB、Makefile
来源:互联网 发布:苹果cms电影模板 编辑:程序博客网 时间:2024/05/14 07:10
GCC,GDB和MAKE
GCC 入门
前面已经提到过,linux的发展离不开GNU计划,而GNU的贡献就在于推出了很多高质量的免费的软件。而其中的GNU(全称为:GNU C Compiler)又是具有卓越贡献的软件。
GCC 的一般命令为 gcc [-选项1] 源文件名 [-选项2] 目标文件名
gcc hello.c -o hello 直接一步编译到底
gcc -E hello.c -o hello.i 只进行预处理
gcc -S hello.i -o hello.s 只进行编译,产生汇编程序
gcc -c hello.s -o hello.o 只进行汇编
gcc hello.o -o hello.exe 只进行链接
-o 的作用是指定文件名
另外选项1 如果是 -O 就是优化编译,编译后的程序效率会高一些。可以用命令 time ./hellol来查看一个可执行文件的执行时间
选项1 如果是 -static 就表明是静态链接。GCC默认是动态链接。
选项1 如果是 -g 就表明产生GDB调试所必须的符号信息。
ldd hello.exe 查看所需要的库
GCC默认的头文件搜索路径为 : usr/include目录
GCC默认的链接文件搜索路径是:/usr/lib目录。为什么需要链接?比如像printf 这样的函数,在程序里面用到了,并且所包含的头文件里面只有该函数的声明而没有该函数的定义,所以就需要链接。库文件的后缀名为.a 的为静态链接库 .so的为动态链接库。Gcc默认为动态链接库。
GDB 入门
1:Gdb常用命令
List(l) :查看程序
Break(b) 函数名/行号 : 设置断点
Info break :打印所有断点
Delete 断点编号 :删除断点
Run(r) :全速运行执行程序,除非有断点
Continue(c):继续全速执行程序
Next(n) :单步运行程序,不进入子函数
Step(s) :单步执行程序,进入子函数
Print(p) 变量名:打印变量值
Quit(q) 退出
GNU Make
1) 地位:linux程序员必须学会gnu make来构建和管理自己的软件工程。GNU的make可以使整个软件工程的编译,链接只需要一个命令。
2) 语法:
A)目标:依赖
命令
B) 注意命令之前以tab键空
C) 对于没有依赖的目标,比如进行声明,用.PHONY例如:
.PHONY clean
clean:
rm ……
D)几个特殊的符号:$^ 代表所有的依赖;$< 代表第一个依赖文件 ;$@ 代表目标
3)多源文件的Makefile实例
- linux GCC、GDB、Makefile
- linux GCC、GDB、Makefile
- linux下gcc、gdb、makefile
- linux-基础-gcc/gdb/makefile
- Linux学习之GCC&GDB,Makefile
- Linux程序设计基础(gcc、makefile、gdb)
- Linux 开发工具 ---gcc makefile gdb
- gcc/makefile/gdb常用命令
- gcc gdb make makefile
- GCC,GDB,Makefile
- GCC、GDB、Makefile
- GCC/Makefile/GDB
- gcc,gdb,makefile
- gcc,gdb,makefile
- Linux 开发工具学习(gcc 、gdb和makefile)
- Linux下开发环境(gcc/g++/makefile/gdb)
- Linux下开发环境(gcc/g++/makefile/gdb)
- Linux编程环境(vi gcc gdb Makefile)
- IFrame与Frame分析
- Android之Service与IntentService的比较
- GCC 使用手册
- Qt学习之路(6): API文档的使用
- 程序员看世界之北京的暴雨积水(5)2012-7-22
- linux GCC、GDB、Makefile
- Linux GCC常用命令
- 黑马程序员_学习日记67_717ASP.NET(Socket聊天室)
- [CentOS] CentOS 6 IPv6 关闭方法
- Linux中的system函数详细分析
- Linux GCC内嵌嵌入汇编程序基础知识
- 从今天开始整理博客了
- [Centos]Centos 6修改主机名
- 细谈linux gcc的概念及其参数