在 Visual Studio 2010 (utility.obj) 中使用带有 VC++ 的 QuickFix 时出错
Posted
技术标签:
【中文标题】在 Visual Studio 2010 (utility.obj) 中使用带有 VC++ 的 QuickFix 时出错【英文标题】:Error using QuickFix with VC++ in Visual Studio 2010 (utility.obj) 【发布时间】:2013-01-11 05:53:33 【问题描述】:这里是:
我下载了 QuickFix 源代码,使用 CMake 构建它并获得了 .sln 文件。
然后我在 VC++ 2010 中打开了 .sln 文件并构建了名为“quickfix_vs10”的项目 (实际上我构建了一个名为 quickFix.lib 的库)并收到了一些警告,但构建是 成功了。
然后我在另一个项目中使用了这个 .lib 文件,使用 #pragma comment(lib, "quickFix.lib")
每当我在我的项目中声明 FIX::TransactTime 类的实例时,我都会得到很多 链接时间错误。所有这些都与utility.obj 中未解析的令牌有关。 如果我使用任何其他类,这些错误就不会出现。
其中一个错误是:
quickFix.lib(Utility.obj) : error LNK2028: unresolved token (0A000426) "extern "C" int __stdcall getpeername(unsigned int,struct sockaddr *,int *)" (?getpeername@@$$J212YGHIPAUsockaddr@@ PAH@Z) 在函数“char const * __cdecl FIX::socket_peername(int)”中引用 (?socket_peername@FIX@@$$FYAPBDH@Z)
【问题讨论】:
【参考方案1】:报错提示需要链接"Ws2_32.lib"
见getpeername参考
【讨论】:
不是一个非常解释性的答案,但它告诉我“Ws2_32.lib”解决了我的问题。我刚刚介绍了 #pragma comment(lib, "Ws2_32.lib") 行,它解决了我的问题。我通过链接得到了这样做的想法:forums.codeguru.com/…以上是关于在 Visual Studio 2010 (utility.obj) 中使用带有 VC++ 的 QuickFix 时出错的主要内容,如果未能解决你的问题,请参考以下文章
visual studio 2010的应用程序在哪,那个文件里的哪个?
如何在 Visual Studio 2008 或 Visual Studio 2010 中设置 JavaScript 断点
如何在 Visual Studio 2010 中使用 Visual Studio 2008 创建的 DLL?