亲爱的开发人员c ++, 我是下一个问题:尝试编译我的项目我得到了"错误LNK2019:未解析的外部符号" 即使标题中的所有声明方法都在.cpp
中定义我将我的代码与帖子一起附上。 谢谢你的帮助!
https://www.dropbox.com/s/e45oazbdc3b23tz/TSTGeometricLib.rar
P.S。代码显示为VS2005解决方案
我得到的错误是下一个:
1> Wm5Vector3.obj:错误LNK2019:未解析的外部符号" public:double const& __thiscall Wm5 :: Tuple :: operatorconst" (?? ATuple @ Wm5 @@ QBEABNH @ Z)在函数" public中引用:__thiscall Wm5 :: Vector3 :: Vector3(类Wm5 :: Tuple const&)" (?? 0Vector3 @ @@ WM5 QAE @ ABVTuple @ @@ 1 Z)
1> Wm5Vector3.obj:错误LNK2019:未解析的外部符号" public:double& __thiscall Wm5 :: Tuple :: operator" (?? ATuple @ Wm5 @@ QAEAANH @ Z)在函数" public中引用:static void __cdecl Wm5 :: Vector3 :: ComputeExtremes(int,类Wm5 :: Vector3 const *,类Wm5 :: Vector3&, class Wm5 :: Vector3&)" (?ComputeExtremes @ @的Vector3 WM5 @@ @ SAXHPBV12 @ AAV12 1 @ Z)
1> Wm5Vector3.obj:错误LNK2019:未解析的外部符号"类Wm5 :: Vector3 __cdecl Wm5 :: operator *(double,类Wm5 :: Vector3 const&)" (?? DWm5 @@ YA?AVVector3 @ 0 @ NABV10 @@ Z)在函数" public中引用:static void __cdecl Wm5 :: Vector3 :: Orthonormalize(类Wm5 :: Vector3&,类Wm5 :: Vector3 &,Wm5类:Vector3&)" (?Orthonormalize @ @的Vector3 WM5 @@ @ SAXAAV12 00 @ Z)
答案 0 :(得分:0)
要解决Wm5::Tuple::operator[]
问题,解决方法是将函数放在头文件中。链接器不喜欢CPP中的inline
函数。
要解决问题Vector3 operator* (double scalar, const Vector3& vec);
从头文件中删除inline
并将定义如下:
inline Vector3 Wm5::operator* (double scalar, const Vector3& vec)
在CPP文件中,因为您还需要指定命名空间。