提问人:Tucker Besch 提问时间:1/14/2018 更新时间:1/14/2018 访问量:212
未解析的外部阵列
Unresolved External Array
问:
我正在从事一个学校项目,我遇到了“未解析的外部符号”的链接器错误,我有两个文件;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} 这样的值,因为我不知道它将具有什么值。提前非常感谢!!
答:
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;
评论