Linux c编程

c语言标准

  • ANSI C
  • POSIX(提高UNIX程序可移植性)
  • SVID(POSIX的扩展超集)
  • XPG(X/Open可移植性指南)
  • GNU C(唯一能编译Linux内核的编译器)

gcc 简介

名称:

  • GNU project C and C++ Compiler
  • GNU Compiler Collection
    管理与维护
  • GNU项目
    对C/C++编译的控制
  1. 预处理(Preprocessing)
  2. 编译(Compilation)
  3. 汇编(Assembly)
  4. 链接(Linking)

GCC文件扩展名规范

(1).c为后缀的文件,是C语言源代码文件。

(2).h为后缀的文件,是头文件。

(3).C,.cc、.cpp、.cp或.cxx为后缀的文件,是C++源代码文件。

(4).h为后缀的文件,是程序所包含的头文件。

(5).i为后缀的文件,是已经预处理过的C源代码文件。

(6).ii为后缀的文件,是已经预处理过的C++源代码文件。

(7).m为后缀的文件,是Objective-C源代码文件。

(8).o为后缀的文件,是编译后的目标文件。

(9).s为后缀的文件,是汇编语言源代码文件。

(10).S为后缀的文件,是经过预编译的汇编语言源代码文件。

gcc使用

基本使用格式
$ gcc [ 选项 ] <文件名>

image.png

image.png

image.png

生成预处理文件

image.png

生成汇编文件

gcc –S hello.c –o hello.s

生成对应的目标文件

gcc -c hello.c -o hello.o

目标代码并不能在CPU上运行,但它离二进制可执行文件已经很近了,再输入以下编译指令即可生成二进制可执行文件。

[root@localhost~]# gcc hello.o -o hello

image.png
文件hello.c引用的头文件say_hello.h不在当前目录中,也不在GCC默认的头文件搜索路径/usr/include中,这时我们应该使用-I选项指定搜索头文件的特殊目录,具体编译指令如下:

gcc hello.c functions/say_hello.c -o hello –I functions

make

image.png

image.png
image.png

makefile文件中还可以定义一些宏,宏的作用类似于C语言中的define命令,利用它们来代表某些多处使用而又可能发生变化的内容,可以节省重复修改的工作,还可以避免遗漏

1	CC=gcc
2	CFLAGS=-Wall-c   #-Wall:编译后显示所有警告
3	OBJS= hello.o say_hello.o
4	hello:${OBJS}
5           ${CC} ${OBJS} -o hello
6	say_hello.o:say_hello.c say_hello.h
7           ${CC} ${CFLAGS} say_hello.c -o say_hello.o
8	hello.o:hello.c say_hello.h
9           ${CC} ${CFLAGS} hello.c -o hello.o

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值