[英]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
。
你有兩個選擇:
使用extern void foo(MyNamespace::bar);
在你的“使用點”。 不要將該行括在MyNamespace
。
或者,將函數定義包含在MyNamespace
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.