您的位置:首页 > 其它

Summary Day27

2015-06-01 20:47 134 查看
1. 课程简介

1.1 课程阶段简介

1.2 Unix/linux系统下的高级c编程

2. Unix/Linux系统简介

1.1 Unix系统简介

1.2 Linux 系统的简介

3. gcc的基本使用

2.1 基本概念

原名叫做GNU C Compiler(GNU C 编程语言编译器),只是用于编译C语言,后来做一些扩展,

支持C++\OC等语言的编译,因此改名为: GNU Compiler Collection(GNU 编译器套件/集合)

2.2 基本功能

gcc xxx.c主要包括以下4个部分功能

(1)预处理:主要实现对头文件的包含以及宏替换

(2) 编译:主要将高级语言转换成汇编语言

(3)汇编:主要将汇编语言翻译成机器指令,得到目标文件

(4) 链接:主要将目标文件和库文件进行链接,生成可执行文件

2.3 常见的编译选项

(1)掌握的选项

-E
进行预处理,预处理默认输出到控制台, 使用gcc -E xxx.c -o xxx.i 将预处理结果定位到xxx.i文件中

预处理之后的文件主要包含:头文件\类型的别名\各种函数的声明

-S 进行编译处理,生成汇编文件xxx.s

-c 进行汇编处理,生成目标文件xxx.o

gcc/cc xxx.o -链接处理,生成可执行文件a.out

如:

gcc/cc -E xxx.c -o xxx.i

=>预处理生成.i文件

gcc/cc -S xxx.i/xxx.c

=>编译,生成.S文件

gcc/cc -c xxx.s/xxx.i/xxx.c

=>汇编,生成.O文件

gcc/cc xxx.o/xxx.s/xxx.i/xxx.c

=>链接,生成a.out 文件

(2)熟悉的选项

-std 用于指定编译遵守的标准

-Wall 主要用于尽可能产生警告

-Weror 主要将警告当做错误进行处理

(3)了解的选项

-v -g -o -x

(4)扩展的选项

man

(5)常见的文件后缀

.h 头文件

.c 源文件

.i 预处理之后的文件

.s 汇编文件

.0 目标文件

.a 静态库文件

.so 共享库文件

3.多文件结构的编程

.h 头文件,主要存放结构体的定义,函数的声明等等

.c 源文件,主要存放变量/函数的定义等等

.a 静态共享库,主要对功能代码的打包

.so共享库文件,主要对功能代码的打包

3.2 头文件的详细内容

(1) 头文件的卫士

#ifndef xxx_H

#define xxx_H

#endif

(2) 包含其他头文件

(3)宏定义

(4)数据类型的定义以及类型起别名

(5)变量/函数的声明

extren/*外部的*/ int num;

void show(void);

4. 预处理指令

4.1复习预处理指令

4.2 学习新的预处理指令

#line 整数n

#warning 字符串

# error 字符串

#pragma GCC dependency

#pragma GCC poison 标识符

#pragma pack(整数n) 表示按n的真数倍进行对齐补齐

4.3 预定义宏
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: