簡體   English   中英

使用extern來指代在不同編譯單元中定義的函數

[英]Using extern to refer to a function defined in a different compilation unit

由於一些靜態數據,我有一個功能

void foo(MyNamespace::bar)

在某個編譯單元中定義。 但它的使用點在於另一個編譯單元。 所以我用

namespace MyNamespace
{
    extern void foo(bar);
}

但是鏈接器找不到函數定義。 我是否誤用了extern

extern 可以用於這種事情。

你的問題是鏈接器需要一個函數MyNamespace::foo(bar); 由於您的extern語句在MyNamespace

你有兩個選擇:

  1. 使用extern void foo(MyNamespace::bar); 在你的“使用點”。 不要將該行括在MyNamespace

  2. 或者,將函數定義包含在MyNamespace

暫無
暫無

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

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