C ++错误LNK2019无法运行代码

时间:2014-05-27 06:58:40

标签: c++ visual-studio compilation lnk2019

亲爱的开发人员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)

1 个答案:

答案 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文件中,因为您还需要指定命名空间。