[英]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.