我有3个文件,banca.cconticorrenti.cbanca.h
banca.h包含函数的声明。
banca.c包含:

#include <stdio.h>
#include <pthread.h>

以及函数的实现。
conticorrenti.c包含:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include "banca.h"

如何在Linux终端上运行此程序?
如果banca.h不包含在其中,那么banca.h如何读取方法的实现?

最佳答案

包含是预处理文本处理步骤。它只是将头的内容粘贴到#include所在的C文件中。
它不会使代码可调用,这是一个链接时间问题。
您需要将两个C文件链接在一起,如下所示:

$ gcc -o banca banca.c conticorrenti.c

首先编译两个C文件,然后将结果链接到一个可运行的程序。
更新您的注释意味着您还使用pthreads,那么您通常必须链接:
$ gcc -o banca banca.c conticorrenti.c -lpthread

这里,-l是编译器在链接时包含命名库的选项。

09-18 10:36