GCC 编译流程:
GCC在编译C/C++程序时,会经过一下4步
1.预处理
gcc -E hello.c -o hello.i
2.编译
gcc -S hello.i -o hello.s
3.汇编
gcc -c hello.s -o hello.o
4.链接
gcc hello.o -o hello
一步到位方法:gcc hello.c -o hello
常用的编译选项:
-I dir
Linux中默认的头文件都放在/usr/include目录下,如果用户希望添加其他位置的头文件的时候,需要通过"-I dir"来指定
eg.
gcc hello.c -I /root/workspace/include/ -o hello
-L dir
添加库文件的搜索路径
eg.使用动态库/root/workspace/lib/libsunq.so
gcc hello.c -lsunq -L /root/workspace/lib -o hello
-llib
就像上例中指定链接库,通过-lsunq去链接libsunq.so。这是因为Linux下的库文件在命名时都必须以"lib"开头,所以可以省略这3个字母
有时候编译出来的程序,在运行时找不到动态链接库,我们需要设置一下环境变量LD_LIBRARY_PATH。如:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/workspace/lib
警告提示:
-w 禁止所有警告
-Wunused 警告未使用的变量
-Werror 将警告视为错误
-Wall 显示所有有用的警告信息
eg. gcc -Wall -o hello hello.c
调试:
-g 让gcc在编译时产生调试信息,以便使用gdb调试
-pg 产生额外的代码输出,提供给gprof等工具使用
代码优化:
-On 指定优化级别,n在0到3之间,n越大表示优化越好。-O0表示不优化,-O3表示尽可能的优化。在需要调试的时候,最好不要优化。如果不指定该选项的话,就是-O0
相关推荐
cdlinux安装gcc, 操作流程字数补丁, 比较简单没什么好下载的
GCC学习笔记
关于GCC的使用说明,不可多得的入门材料,方便学习linux下面的编程
在学习linux过程中,对gcc编译器的使用选项的一些摘录,希望对大家的学习有帮助!
这是我的shell编程笔记,我有很多自己的学习笔记,供我以及大家复习使用,还有其他的哦 C语言笔记,java笔记,网页笔记,javaweb笔记,gcc笔记,等,我会慢慢传
别人的GCC的连接脚本学习笔记 虽然不是自己写的 不过真是很不错!!
gcc工具链的选项笔记
gcc开发教程,笔记,使用教案,多文件Gcc 的处理 Gcc代码优化
gcc学习笔记,非常好的东西哦,关于ssa数的,编译器相关的
工程源文件和一些文档 博文链接:https://lucane.iteye.com/blog/466187
centos 7.2 gcc 包
gcc源代码的总结主要包括语法树的操作,和对程序的解析。
根据网上资源和实际使用整理的gdb速成文档,适合于用过一点点gdb而且偶尔用gdb命令行调试的朋友
考研英语GCC 中文手册.rar J2EE interview book Photo Frame Genius 2.3 破解版 Hiberate Annotation学习笔记 2008年11月份希赛模拟题 multisim 入门帮助文件和元件参数 精通PHP5 光盘源文件 深入理解LINUX 第三版 ...
GCC 预处理(.c/.cpp)、编译()、汇编、链接 头文件 默认头文件路径(程序中用包含头文件,会到这个默认路径查找文件) 系统gcc编译器默认头文件路径:一般在/usr/include目录下,进入该目录,然后使用find -name ...
Linux学习笔记。详述了Linux命令,gcc编译器
这篇文档是我的关于gcc参数的笔记,我很怀念dos年代我用小本子,纪录所有的dos 命令的参数.哈哈,下面的东西可能也不是很全面,我参考了很多的书,和gcc的帮助.不全的原因是,有可能我还没有看到这个参数,另一种原因是,我...
title: gcc教程categories: 嵌入式笔记gcc(或g++)的用法以main.c为例说明gcc的用法:gcc -o main main.c:编译
嵌入式培训班 arm s3c2400前期笔记 配置arm模拟器步骤,ARM GCC交叉编译器制作,编译下载Linux内核,Minicom的准备,vivI从NFS加载文件系统,等等
龙芯2 笔记本可用的编译器,非交叉编译