我有幾個庫,我在同一個系統的模塊中使用。 我的問題是,當我做#包括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中完全可以接受同一函數或變量的多重兼容*聲明*。這當然不是你的問題。同一個函數或變量的多個*定義*是不允許的,但這不是鏈接器所抱怨的。 –