未解析的外部阵列

Unresolved External Array

提问人:Tucker Besch 提问时间:1/14/2018 更新时间:1/14/2018 访问量:212

问:

我正在从事一个学校项目,我遇到了“未解析的外部符号”的链接器错误,我有两个文件;math.h 和 math.cpp。我正在尝试在 math.h 的命名空间中声明一些数组,但我从中得到了链接器错误。在我的 math.h 中:

namespace domath
{
extern float alpha1[];
extern Vector ecth[];
}

在我的数学.cpp中:

#include math.h

float alpha1[];
Vector ecth[];

我能做些什么来修复?我无法分配像 alpha1[] = {1} 这样的值,因为我不知道它将具有什么值。提前非常感谢!!

C++ 链接器 未解析的外部

评论

0赞 1/14/2018
没有数组。

答:

0赞 Thomas 1/14/2018 #1

您可以在命名空间中声明数组,但在全局命名空间中定义它们。请尝试以下操作:domath

// math.cpp

#include math.h

namespace domath
{
float alpha1[];
Vector ecth[];
}

它不起作用的另一个原因是您没有指定数组的大小。要么预先给它们一个固定的大小,要么将它们声明为指针,或者 - 通常最好在 C++ 中 - 使用 .std::vector

评论

1赞 Tucker Besch 1/14/2018
斯特尔:(没有工作。请注意,我稍后将在代码中更改数组的值,例如;domath::ecth[alpha1->GetIndex()] = 9;