【Linux学习】GCC学习
来源:互联网 发布:eosinfo软件 编辑:程序博客网 时间:2024/05/22 03:29
(1)GCC简介
Linux系统下的GCC(GNU C Compiler)是GNU推出的功能强大性能优越的多平台编译器,是GNU的代表作之一。GCC可以在多种硬件平台上编译出可执行程序,其执行效率与一般的编译器相比平均效率要高20%~30%。
GCC编译器能将C,C++语言源程序、汇编程序编译、链接成可执行文件。
使用GCC编译程序时,编译过程可以被细分为四个阶段:预处理、编译、汇编、链接。
(2)基本用法
GCC最基本的用法是:
gcc [options] [filenames]
options:编译器所需要的编译选项
filenames:要编译的文件名
(3)最常用的参数
-o output_filename:确定可执行文件的名称为output_filename.如果不给出这个选项,gcc就给出预设的可执行文件a.out.
-c 只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件。
-g 产生调试工具(GNU的gdb)所必要的符号信息,想要对编译出的程序进行调试,就必须加这个选项
-O(大写字母)对程序进行优化编译,链接,采用这个选项,整个源代码会在编译链接过程中进行优化处理,这样产生的可执行文件效率可以提高。但是,编译,链接的速度就相应地要慢些
-O2 比-O更好的优化编译链接,整个编译、链接会变慢
-I dirname 将dirname所指出的目录加入到程序头文件目录列表中。
gcc file.c -I/home/include -o file 将目录/home/include加入到程序的头文件列表中
注:C程序中的头文件存在两种:#include <stdio.h> #include "cpp.h",对于<>,预处理程序cpp在系统预设的头文件目录中搜寻相应的文件;而对于“ ”,cpp在当前目录中搜寻头文件,这个选项的作用是告诉cpp,如果在当前目录中没有找到需要的文件,就到指定的dirname目录中去寻找。
-Ldirname:将dirname所指出的目录加入到库文件的目录列表中,在默认状态下,连接程序在系统中预设的路径中寻找所需要的库文件(如usr/lib)而这个选项告诉程序,首先到-L指定的目录下寻找,然后在到系统预设的路径中寻找。
-lname:在连接时,装载名字为libname.a的函数库,该函数库位于系统预设的目录或者有-L选项指定的目录下。例如:-lm表示连接名为libm.a的数字函数库。
例:gcc file.c -L/home/lib -la -o file 在L指定的目录下装载liba.a的函数库
-static :静态连接库文件
-wall 生成所有警告信息
-D MACRO 定义MACRO宏,等效于在程序中使用# define MACRO
- 【Linux学习】GCC学习
- linux 学习记录 gcc
- Linux gcc 学习
- Linux下gcc学习
- Linux - gcc 学习笔记
- Linux学习(gcc)
- LINUX学习之初学GCC
- linux学习之初识GCC
- arm-linux-gcc学习笔记
- arm-linux-gcc学习笔记
- linux基础学习之 GCC
- linux学习之初识gcc
- linux——gcc学习
- Linux之GCC入门学习
- 嵌入式linux学习 arm-linux-gcc安装
- GCC学习
- GCC学习
- gcc学习
- Python实现的两个文件操作:当前目录下所有文件和转码
- Java jdbc Connection sql server And Oracle
- 文本分类特征选择方法之信息增益
- C++ 用libcurl库进行http通讯网络编程
- 《程序员,你伤不起》读书笔记 (七):IT软件创业之 -- 项目型创业不确定因素很多对管理上要求更高,赚钱很难、赚大钱更难
- 【Linux学习】GCC学习
- Java Observer接口学习
- 多个主库一个从库同步实施
- Buildings 2560
- 《计算机程序的构造和解释》学习笔记——数据抽象
- 虚函数与默认实参
- OpenCV编程->cvMeanShift函数
- ACM-DFS之Jerboas——hdu2437
- Unity3D学习随笔