Linux学习(C语言学习之Gcc)

Linux的学习需要对C语言有一个透彻性的了解,需要有非常好的C语言基础,Gcc是Linux中的C文件的一个编译器(当然也不只局限于C文件)。
Gcc最初的全名是GNU C Compiler
随着Gcc支持的语言越来越多,它的名称变成了GNU Compiler Collection
它相当于在Linux当中的对.c文件的一个翻译者,将我们的.c文件翻译成计算机可以理解的语言。
对于Gcc而言在使用的时候要特别的注意文件的后缀名 比如.c , .cpp等
在使用Gcc编译我们写的.c文件的时候一定要注意语句的格式:
gcc -o(output有输出的意思)
gcc -o 输出的文件名 输入的文件名
gcc -v -o;可以查看Gcc调用了哪些东西。

gcc -S -o 输出文件名称(.s) 输入文件名称(.c)(编译命令生成.s文件)
gcc -c -o 输出文件名称(.o) 输入文件名称(.s)
(汇编命令由.s文件生成.o文件);可以完成编译、汇编两个内容
gcc -o 输出文件名称 输入文件名称(完成连接) 可以完成编译、汇编、连接三个内容
vi 文件的名称(查看文件内容,也可以编辑文件)
gcc -E -o 输出文件名称(.i) 输入文件吗名称(.c) 宏定义预处理命令
gcc中常见的预处理错误:
#include “name” 从当前目录下寻找
#include 从系统下寻找
最常见的错误是:not find
解决问题的命令:
gcc -I跟查找头文件的目录
编译错误:
语法错误 ;(忘写)
连接错误:
错误原因:原材料不够 undefined reference to ‘函数名’,没有定义此函数
原材料多了 multiple definition of ‘函数名’,重复定义此函数
多个c文件的打包方法:
gcc -o 输出文件名 第一个.c文件 第二个.c文件…(不建议使用此方法)
建议使用的方法:
gcc -c -o 输出文件名称(.o) 第一个输入文件名称(.s)
gcc -c -o 输出文件名称(.o) 第二个个输入文件名称(.s)
gcc -o 输出文件名称 第一个.o文件 第二个.p文件
预处理的使用整个编译的第一步
可以分为一下几类:
#include “” <> 包含头文件
#define 宏定义(注意后面不加分号)不进行语法检查
#define 宏名 宏体(如果宏体是一个表达式,建议直接加括号,防止出错)
预定义宏

__FUNCTION__  指函数名
__LINE__	指行号(本条语句的行号)
__FILE__	指文件名

系统定义的宏
条件预处理:
#ifdef #else #endif
在这里插入图片描述
在以上的代码段中:#ifdef ABC 的意思是如果定义了ABC就执行下一条语句,这样就可以在调试与用户两个版本之间切换。
gcc -D
比如 gcc -DABC1 相当于#define ABC1
#字符串化
#define ABC(x) #x
##连接符号
#define DAY(x) day##x

猜你喜欢

转载自blog.csdn.net/weixin_42994525/article/details/82930601
今日推荐