gpt4 book ai didi

c++ - 命名空间函数的链接

转载 作者:行者123 更新时间:2023-11-30 03:10:50 31 4
gpt4 key购买 nike

我在类的 header 中的命名空间级别声明了几个方法:

// MyClass.h

namespace network {

int Method1(double d);
int Method2(double d);

class MyClass
{
//...
}

}

然后定义在

//MyClass.cpp

int
Method1(double d)
{ ... }

int
Method2(double d)
{ ... }

这个项目编译干净,是一个使用 MyClass 的 ui 项目的依赖项。这些函数以前是 MyClass 的成员函数,但由于更合适而被移至命名空间。

我的问题是 ui 项目在到达链接器时提示:

1>network.lib(MyClass.obj):错误 LNK2001:未解析的外部符号“int __cdecl network::Method1(double)”(?INT@ds@sim@@YAHN@Z)

1>network.lib(MyClass.obj):错误 LNK2001:未解析的外部符号“int __cdecl network::Method2(double)”(?CINT@ds@sim@@YAHN@Z)

我做错了什么?

最佳答案

看起来您已将函数声明放入命名空间 block 中,但忘记将函数实现也放入命名空间 block 中。尝试:

namespace network {
int
Method1(double d)
{ ... }

int
Method2(double d)
{ ... }
}

关于c++ - 命名空间函数的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2860068/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com