当前位置:编程学习 > 网站相关 >>

gcc学习笔记

格式:   gcc [option]  [filename]
-c 只编译生成.o文件
-o output_filename
-O 优化程序
-O2 优化程度更深
-g 产生代码调试信息
-Wall  所有警告
-Werror  只报error
-w 不产生任何警告
-v 输出gcc工作的详细过程
 
-DMACRO 相当于#define MACRO
-I  dirname    (大写的i)用" "的头文件若在当前目录没有,则到dirname中找
-L dirname  首先到dirname中寻找所需库文件(默认在预设路径找,如/usr/lib)
-lname        在连接时装载名字为"libname.a"的函数库
                   如:  -lm  表示连接系统的数学库libm.a,所有与浮点运算相关的都必须用数学库!
-static     库分动态和静态,动态通常以.so为后缀,静态通常以.a为后缀
               静态库: 把用到的函数放在程序里,www.zzzyk.com
               动态库: 在程序内留下标记,当程序执行是先载入这个库
               linux下进行连接的缺省操作是首先连接动态库
 
分段编译:
程序编译的流程:
预处理:  展开宏,加入"#include "包含的内容,生成预编译文件 **.i
汇编:      生成汇编源文件 **.s
编译:     生成目标文件 **.o
链接:     将目标代码链接成可执行文件(放到和合适的地方) 
相关选项:
-E  预编译,生成**.i
-S  汇编,   生成.s
-c   编译,   生成.o
 
补充:综合编程 , 其他综合 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,