您的位置:首页 > 其它

编译和预处理相关知识点

2015-12-11 16:28 155 查看

编译和预处理相关知识点

GCC

本质:翻译官,把高级语言翻译成机器指令

常用选项:

gcc -o 输出文件名 输入文件名
gcc -o build 01.c (后缀不能为其他)
gcc -v -o build 01.c
gcc -l -o  用来指定程序要链接的库,-l参数紧接着就是库名
gcc -L -o   -L参数跟着的是库文件所在的目录名
gcc -E -o
gcc -S -o
gcc -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

预定义宏 [b]FUNCTION LINE FILE[/b]

条件编译(开关) #ifdef #else #endif

提前定义一个宏:gcc -DABC 等价于#define ABC

宏展开下的#和##:

#define ABC(a)   #a      字符串
#define DAY(a)    myday##a     连接符号
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: