簡體   English   中英

C ++:命名空間內的Extern C函數

[英]C++ : Extern C Functions inside a Namespace

我必須鏈接兩個庫,比如A和B.一些文件在兩個庫中都很常見。 所以,我在命名空間中聲明庫A中的函數,比如說abc。 因此,在A和B中,函數func如下所示:

[ in A]

    namespace abc {
    extern "C" void func();
    }


[in B]

    extern "C" void func();

在構建項目時,編譯器拋出鏈接錯誤,說明函數func的多個定義。 不是命名空間內的A中的函數func,還是extern“C”函數存在一些問題。 如果有,那我怎么能區分它們呢?

當您使用Extern“C”時,您將關閉名稱修改,因此您丟失了命名空間信息,因為C沒有這樣的概念。 這會導致重復定義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM