关于linux:小白的动手时间Linux下手动编译多文件工程C-gcc

从一到多

环境:ubuntu 18.04

背景常识

  vim编辑器是vi的加强版,如果你的零碎没有装置它的话,无妨在终端键入sudo apt-get install vim来装置它。在基本功能上二者没啥大差异,不过,看在vim更敌对的高亮上,多用用它吧?

  上一篇文章里提到调用gcc时,-o可用于指定生成指标文件的名称,这里再补充一个——-c用于批示“编译但不链接”。

步骤

首先当然倡议关上终端并本人建个文件夹,不然练习完删起来麻烦

  • 首先,咱们来筹备一个总文件数大于1的程序,嗯,就写hello world吧!代码如下:

    //我是hello.c
    #include "hello.h"
    
    void sayhello()
    {
        printf("Hello World!\n");
    }
//我是hello.h
#include <stdio.h>

void sayhello();        
//我是test.c
#include "hello.h"

int main()
{
    sayhello();
    return 0;
}
  • 咱们能够试试间接gcc test.c -o test,会发现没有文件生成,而且编译器提醒“undefined reference to ‘sayhello’ ”。看来间接编译、链接行不通,这个编译器看起来不太聪慧的亚子。
  • 那么,咱们试试独自编译每个文件后再链接吧。

    gcc -c hello.c
    gcc -c test.c
    gcc hello.o test.o -o test
  • 最初,./test,咱们用多文件程序的形式胜利输入Hello World!

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理