嵌入式学习笔记之gcc编译

来源:互联网 发布:淘宝打假赚钱 编辑:程序博客网 时间:2024/06/06 20:50

一个C/C++文件要经过预处理、编译、汇编和连接等4步才能变成可执行文件:

     (1)以#开头的命令被统称为预处理,比如“#include”,宏定义命令“#define”和条件编译命令“#if”和 “#ifdef”等,经过预处理后的代码将输出到一个“.i”文件中去,预处理使用arm-linux-cpp工具;

     (2)编译就是将“.i”代码“翻译”成汇编代码,即.s文件;

     (3)汇编就是将汇编代码“翻译”成一定格式的机器语代码,即.o文件,汇编使用arm-linux-as工具;

例如:现在有main.c,sub.h以及sub.c三个文件。


file:main.c
#include <stdio.h>
#include "sub.h"
int main(int argc, char *argv[])
{
    int i;
    printf("Main fun!\n");
    sub_fun();
    return 0;

file:sub.h
void sub_fun(void);

file:sub.c
void sub_fun(void)
{
    printf("sub fun!\n");
}

现在在终端下进行编译:
(1)   gcc  -c  -o  main.o  main.c
(2)   gcc  -c  -o  sub.o    sub.c
(3)  gcc  -o  test  main.o  sub.o

使用./test命令后,其打印结果为:
    Main fun!
    sub fun!


如果在编译过程中出现警告,可以使用 gcc -w来忽略警告。
0 0
原创粉丝点击