我有几个库,我在同一个系统的模块中使用。 我的问题是,当我做#包括h文件,最后在系统中它说“未定义的引用...”模块的不同功能,包括两次,每次不同的模块。这可能是因为双重声明,我该如何管理它?模块化的系统在c
我有 “rialtor.h”,其中:
#include <stdbool.h>
#include "apartment.h"
#include "offer.h"
我有 “client.h”,其中:
#include <stdbool.h>
#include "apartment.h"
#include "offer.h"
我在 “system.c”:
#include "rialtor.h"
#include "client.h"
如果简单地在C源文件中包含额外的头部会导致链接器抱怨未定义的引用,否则它不会这样做,那么您必须在该头部中有一个或多个函数定义(而不仅仅是函数原型)。这将是非常糟糕的形式,但不是问题的根源。我们需要看[mcve]给你一个完整的答案。 –
尤其要注意的是,在C中完全可以接受同一函数或变量的多重兼容*声明*。这当然不是你的问题。同一个函数或变量的多个*定义*是不允许的,但这不是链接器所抱怨的。 –