0

我有两个 C++ 项目,每个项目都形成一个库,供第三个项目引用,它们都是 Visual Studio 解决方案的一部分。

这两个库是由其他人编写的,他也提供了自己的 VS 解决方案,其中包括一个项目,该项目用作一些库函数的演示。我已经成功地让这些编译和运行。我正在尝试使用 Windows 窗体开发一个 Windows 应用程序,它将利用这些库。包括两个必要的标题后,

#include "corelib.h"
#include "corbit.h"

并尝试构建代码,我收到 2 个链接错误:

SatTrack_v0.1.obj : error LNK2028: unresolved token (0A000010) "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __clrcall Zeptomoby::OrbitTools::cGeo::ToString(void)const " (?ToString@cGeo@OrbitTools@Zeptomoby@@$$FUBM?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) referenced in function "void __clrcall `dynamic initializer for 'const Zeptomoby::OrbitTools::cGeo::`vftable'''(void)" (???__E??_7cGeo@OrbitTools@Zeptomoby@@6B@@@YMXXZ@?A0xc222cabd@@$$FYMXXZ)

SatTrack_v0.1.obj : error LNK2019: unresolved external symbol "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __clrcall Zeptomoby::OrbitTools::cGeo::ToString(void)const " (?ToString@cGeo@OrbitTools@Zeptomoby@@$$FUBM?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) referenced in function "void __clrcall `dynamic initializerfor 'const Zeptomoby::OrbitTools::cGeo::`vftable'''(void)" (???__E??_7cGeo@OrbitTools@Zeptomoby@@6B@@@YMXXZ@?A0xc222cabd@@$$FYMXXZ)

C:\Users\Satellite Tracking\Software\SatTrack_v0.1\Win32\(Configuration)\SatTrack_v0.1.exe : fatal error LNK1120: 2 unresolved externals

我已通读什么是未定义的引用/未解决的外部符号错误,我该如何解决?我以为我链接了必要的库。我去了项目属性 | 框架和参考并添加了库。我还在 Properties | 下添加了 Additional Include 目录。配置属性 | C/C++ | 一般的。此外,在链接器 | 一般我已经在附加库目录中包含了正确的位置,并且我认为我在链接器 | 下有正确的附加依赖项。输入。一般来说,我已经检查了许多项目属性,并尝试将它们与工作演示项目的属性设置相匹配,但链接器问题仍然存在。

我只是仍然在某处缺少链接,还是问题比​​这更复杂?因为我确实编译了演示解决方案,所以有没有比手动浏览所有设置并尝试匹配合适的设置更好的方法来获取链接设置?我已经被这个问题困扰了几天,无法弄清楚我错过了什么。我应该从这里去哪里?

4

0 回答 0