GNU开发笔记--开发环境基础(持续更新)

GCC(GNU C Compiler)是GNU项目中符合 符合ANSI C 标准的编译系统,能够编译调用 C 、C++、object C等语言编写的程序,同时gcc 也是一个交叉编译器,特别适用于不同平台的嵌入式开发。

一、GCC程序编译过程:

源文件.c >(预处理)> 预编译文件.i >(编译)> 汇编文件.s >(汇编)> 目标文件.o >(链接)> 可执行文件

vim abc.c               //用vim创建一个abc.c文件
    /* 在vim下编写程序*/
i                       //进入插入模式

    #include<stdio.h>
    int main ()
    {
        printf("hello world \r");
        return 0;

    }

:wq                  // 保存 abc.c文件并退出
gcc -o build abc.c   //gcc abc.c -o build

./build              //执行build文件
gcc支持的后缀名
后缀名对应的语言
.cC原始程序
.C/.cc/.cxxc++ 原始程序
.mObjective C原始程序(苹果)
.i已经预处理的C原始程序
.ii已经预处理的C++原始程序
.s/.S回避那语言的原始程序
.h预处理头文件
.o目标文件
.a/.so编译后的库文件,静态库和动态库

二、GCC 手册

在实际使用gcc中如果遇到未知的错误,可以产看手册

man gcc

这里写图片描述
就能进入 GCC的介绍页面,哪里不会看哪里。
介绍一下搜索:

/ XXXX    //搜索关键字
n         //下一个
N         //上一个
/* 如果查询其他的功能,可以按“h”进入帮助文档*/

三、了解编译过程

1、编写程序

vim 1.c //首先利用vim 编写一个hello world的程序
#include <stdio.h>

int main ()
{

printf("hello world");
return 0;

}
:wq   //保存退出

2、进行预编译(预处理)

gcc -E 1.c -o 1.i //进行预编译

然后产看一下 1.i的内容
这里写图片描述
这里写图片描述

3、编译

gcc -S 1.i -o 1.s //对1.i文件进行编译生成1.s的汇编文件

查看一下1.s文件,内容均为汇编语言
这里写图片描述
再次查看一下文件的大小
这里写图片描述

4、生成目标文件

gcc -c 1.c 1.s -o 1.o

查看一下1.o的内容
这里写图片描述
然后再看一下文件的大小
这里写图片描述

file 1.o //查看一下1.o的文件属性

这里写图片描述

5、链接

gcc 1.o -o build

这里写图片描述

最后完成链接,运行程序屏幕就出现了 “hello world”

6、调试

gcc -g 1.c -o 2
./2

四、添加头文件

1、指定路径头文件

在abc.c 的中添加一个头文件abc.h,因此需要添加abc.h的路径,这样才能使编译器找到abc.h。需要调用 “-I”

gcc -I. abc.c -o build
//"."表示当前路径
//-I表示指定路径

在当前文件中建立一个inc的文件夹,存放abc.h

gcc -I./inc abc.c -o build
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

义薄云天us

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值