【问题标题】:Error using QuickFix with VC++ in Visual Studio 2010 (utility.obj)在 Visual Studio 2010 (utility.obj) 中使用带有 VC++ 的 QuickFix 时出错
【发布时间】:2013-01-11 05:53:33
【问题描述】:

这里是:

  1. 我下载了 QuickFix 源代码,使用 CMake 构建它并获得了 .sln 文件。

  2. 然后我在 VC++ 2010 中打开了 .sln 文件并构建了名为“quickfix_vs10”的项目 (实际上我构建了一个名为 quickFix.lib 的库)并收到了一些警告,但构建是 成功了。

  3. 然后我在另一个项目中使用了这个 .lib 文件,使用 #pragma comment(lib, "quickFix.lib")

  4. 每当我在我的项目中声明 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)

【问题讨论】:

    标签: c++ windows sockets tcp quickfix


    【解决方案1】:

    报错提示需要链接"Ws2_32.lib"

    getpeername参考

    【讨论】:

    • 不是一个非常解释性的答案,但它告诉我“Ws2_32.lib”解决了我的问题。我刚刚介绍了 #pragma comment(lib, "Ws2_32.lib") 行,它解决了我的问题。我通过链接得到了这样做的想法:forums.codeguru.com/…
    猜你喜欢
    • 2012-08-14
    • 1970-01-01
    • 2012-05-17
    • 2011-04-24
    • 2019-01-23
    • 2023-04-05
    • 2015-10-02
    • 1970-01-01
    • 2011-03-30
    相关资源
    最近更新 更多