【问题标题】:C++ error LNK2019 can not run codeC++错误LNK2019无法运行代码
【发布时间】:2014-05-27 06:58:39
【问题描述】:

亲爱的 c++ 开发者, 我的下一个问题:尝试编译我的项目我收到“错误 LNK2019:未解析的外部符号” 即使头文件中声明的所有方法都在 .cpp

中定义

我将我的代码与帖子一起附上。 感谢您的帮助!

https://www.dropbox.com/s/e45oazbdc3b23tz/TSTGeometricLib.rar

附言代码呈现为VS2005解决方案

我得到的错误是下一个:

1>Wm5Vector3.obj : error LNK2019: unresolved external symbol "public: double const & __thiscall Wm5::Tuple::operatorconst" (??ATuple@Wm5@@QBEABNH@Z) 在函数“public: __thiscall Wm5”中引用::Vector3::Vector3(class Wm5::Tuple const &)" (??0Vector3@Wm5@@QAE@ABVTuple@1@@Z)

1>Wm5Vector3.obj : error LNK2019: unresolved external symbol "public: double & __thiscall Wm5::Tuple::operator" (??ATuple@Wm5@@QAEAANH@Z) 在函数“public: static void __cdecl”中引用Wm5::Vector3::ComputeExtremes(int,class Wm5::Vector3 const *,class Wm5::Vector3 &,class Wm5::Vector3 &)" (?ComputeExtremes@Vector3@Wm5@@SAXHPBV12@AAV12@1@Z)

1>Wm5Vector3.obj:错误 LNK2019:无法解析的外部符号“class Wm5::Vector3 __cdecl Wm5::operator*(double,class Wm5::Vector3 const &)”(??DWm5@@YA?AVVector3@0 @NABV10@@Z) 在函数 "public: static void __cdecl Wm5::Vector3::Orthonormalize(class Wm5::Vector3 &,class Wm5::Vector3 &,class Wm5::Vector3 &)" (?Orthonormalize@Vector3 @Wm5@@SAXAAV12@00@Z)

【问题讨论】:

  • 您应该考虑将代码的相关部分添加到问题中。如果你坚持要存档,请制作一个 zip。

标签: c++ visual-studio compilation lnk2019


【解决方案1】:

要解决Wm5::Tuple::operator[] 的问题,解决方法是将函数放在头文件中。链接器不喜欢 CPP 中的 inline 函数。

为了解决Vector3 operator* (double scalar, const Vector3& vec); 的问题,从头文件中删除inline 并将定义如下:

inline Vector3 Wm5::operator* (double scalar, const Vector3& vec)

在 CPP 文件中,因为您还需要指定命名空间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多