VS2010 C++ 中多个项目之间未解析的外部

Unresolved external between several projects in VS2010 C++

提问人:EP_Guy 提问时间:5/13/2013 最后编辑:CommunityEP_Guy 更新时间:5/13/2013 访问量:168

问:

我有两个 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 |框架和参考,并添加了库。我还在“属性”|”配置属性 |C/C++ |常规。此外,在“链接器”|”一般情况下,我已经在附加库目录中包含了正确的位置,我认为我在链接器|”输入。总的来说,我已经浏览了许多项目属性,并尝试将它们与工作演示项目的属性设置相匹配,但链接器问题仍然存在。

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

C++ visual-studio-2010 未解析的外部

评论

0赞 4pie0 5/13/2013
你包括<string>了吗?
0赞 EP_Guy 5/13/2013
除了上面提到的两个头文件之外,我还为我的 Windows 窗体提供了 、 和。<stdafx.h><stdio.h>"Form1.h"
0赞 ChiefTwoPencils 5/13/2013
你有没有看过它所指的文件?在我看来,在另一个函数中引用的函数,“vftable”的“动态初始值设定项”是未解析的。对不起,如果这指出了显而易见的事实。ToString()

答: 暂无答案