当前位置: 首页 > 工具软件 > GUN > 使用案例 >

GUN编译工具

阮飞翔
2023-12-01

gun编译器是GNU组织为了编译Linux内核源码而开发的一款编译工具,
经过长时间的发展目前已经成为一个编译平台,能够支持多种编程语言(C、C++、Java、Objective-C、Ada、C#)
和操作系统(UNIX、Linux、Windows),gcc -v 可以查看编译器版本。

通过gun编译器构建可执行文件的过程(C语言)

    gcc -E code.c -o code.i -> code.i
    gcc -S code.i -> code.s
    gcc -c code.s -> code.o
    gcc code.o ... -> a.out
    
    参数:
    -E 预处理
    -S 产生汇编文件
    -c 只编译不链接
    -o 指定输出文件的名字
    -Wall 尽可能多的产生警告		(一般调试项目都要加上)
    -Werror 把警告当错误处理		(一般调试项目都要加上)
    -x 指定源代码的语言
    -g 生成调试信息
    -pedantic 对不符全ANSI标准的语法产生警告(对gcc扩展的语法产生警告)。

	文件后缀:
    .h 头文件
    .h.gch 头文件的编译结果,会被优先使用,建议立即删除
    .c 源文件
    .i 预处理文件
    .s 汇编文件
    .o 目标文件
    .a 静态库文件
    .so 共享(动态)库文件

	编译多个文件:
    1、头文件作用
        头文件卫士
        声明外部变量、函数、类、结构、联合、枚举
        定义宏、类型别名
        包含其它头文件
        
    *2、包含头文件时要注意(重要)
        #include <> 从系统指定的位置加载。
        #include "" 先从当前目录下加载,再从系统指定的位置加载。
    	当没函数声明时,编译器会猜测函数的格式,这种猜测行为叫函数隐式声明。

头文件卫士演示:

#ifndef CODE.H
#define CODE.H
/*
代码......函数声明,结构体等定义,全局变量声明。。。
*/
#endif//CODE.H
头文件的三种定位方式:
    1、#include "路径/xxx.h" 直接把路径写在代码中,但如果头文件路径发生变化,需要修改源代码。

	2、gcc -I目录 在编译时指定加载头文件的路径。

	3、设置C_INCLUDE_PATH环境变量,来添加头文件的查找路径。
    打开配置文件:vim ~/.bashrc
    在文件末尾添加一行内容:export export C_INCLUDE_PATH=$C_INCLUDE_PATH:/home/zhizhen/Linux环境编程day01/include
    重新加载配置文件:source ~/.bashrc
    env命令可以查看所有环境变量。
    扩展:PATH环境变量代表是命令的查找路径,把.添加进去以后再执行程序就不需要./了。
    注意:删除环境变量时需要退出终端,再重新打开
 类似资料: