编译和预处理相关知识点
来源:互联网 发布:域名 绑定公网ip 编辑:程序博客网 时间:2024/06/05 02:46
编译和预处理相关知识点
GCC
本质:翻译官,把高级语言翻译成机器指令
常用选项:
gcc -o 输出文件名 输入文件名gcc -o build 01.c (后缀不能为其他)gcc -v -o build 01.cgcc -l -o 用来指定程序要链接的库,-l参数紧接着就是库名gcc -L -o -L参数跟着的是库文件所在的目录名gcc -E -ogcc -S -ogcc -c -o
编译过程
第一步:编译 gcc -S -o a.s 01.c
第二步:汇编 gcc -c -o a.o a.s
第三步:链接 gcc -o build 01.c
预处理
gcc -E -o a.i 01.c生成a.i
常见错误
(1)预处理错误:找不到,未定义
解决方案:gcc -I ./dir -o build 01.c
(2)编译错误:语法错误
(3)链接错误:原材料不够(函数未实现)或者原材料多了(多次实现)
解决方案:寻找标签是否实现或者只保留一个实现
预处理使用
define 宏替换不进行语法检查
include
预定义宏 FUNCTION LINE FILE
条件编译(开关) #ifdef #else #endif
提前定义一个宏:gcc -DABC 等价于#define ABC
宏展开下的#和##:
#define ABC(a) #a 字符串#define DAY(a) myday##a 连接符号
0 0
- 编译和预处理相关知识点
- 预处理相关知识点
- 函数和编译预处理
- 预处理指令和相关宏
- 预处理、编译、汇编和链接
- 预处理相关
- servlet简介和相关知识点
- 数据和C相关知识点
- 多文件结构和编译预处理命令
- C++主流预处理,编译和链接过程
- 程序的预处理、编译、汇编和链接
- gcc预处理、编译、汇编和链接详解
- oc预处理和编译的理解
- 编译预处理
- 编译预处理
- 编译预处理
- 编译预处理
- 编译预处理
- DTS和PTS的解释(FFMPEG、HLS相关)
- 而立之年学编程之点点滴滴
- 关于Acitivity的启动模式和onNewIntent()
- 面向对象分析和设计(OOA,OOD,OOP,OOT)
- ML—高斯判别分析
- 编译和预处理相关知识点
- Android menu菜单介绍
- rman常用命令
- Nim(Nim博弈变形)
- java,输入一个类或几个类,找到所有import的相关的类,相关的类又import
- Linux网络编程之socket文件传输示例(http://www.jb51.net)
- 模块化编程
- statspack
- 11 Java基础 StringBuffer