一,gcc工具的学习
- 生成c文件的可执行程序
gcc tst.c -o demo
;用./demo
来执行该程序;
./ 是用来执行当前目录下的可执行程序的,所以在执行shell脚本时,更改其权限后,也是可以通过"./"来执行shell脚本的。 - gcc工具在Ubuntu下已经安装,直接使用即可,若要安装,参见:gcc安装
- 具体gcc使用参数见博客:gcc使用参数
二,linux&C语言编程知识
- 将一个工程所需要的文件放在一个文件夹中,将各不再修改的文件(通常是自定义函数文件)通过
gcc -c max.c -o max
编译成o文件;这样下次在编译整个工程时,不用对这些文件再编译,只需执行即可,在工程量很大时,是很节约时间的。 - <>:是只在系统环境中寻找库,而" "是先在当前文件夹下寻找,若没找到再在系统环境中寻找库
- 当main文件中只有函数头文件时(头文件的作用是供别人理解其意义及调用方式,因为函数可执行文件只有机器码,无法识别),编译时需要
gcc max.o min.o main.c -o main
才行(包含头文件,则代表根据头文件去寻找源文件);而main文件中有函数c文件时(相当于把代码整个copy到main文件中),编译时只需gcc main.c -o main
即可
三,makFile的编写
-c : 生成c语言的同名o文件,该文件不可执行,只是转换成了机器码,不再需要编译
gcc hello.c -o hello
才是编译成名字为hello 的可执行文件(注意与o文件的区别),hello.out 只是一个名称标识
makefile文件名只有一种写法:vim Makefile
,其他都是不行的
执行makefile文件只需要输入make
即可
四,linux中C语言相关函数重拾+gdb
见博客:linuxC语言学习
linux中调试工具gdb感觉很不友好…用着真心难受,与VS对应操作见下:
GDB常用命令与Visual Studio对比