繁体   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