0

我正在努力让 libjingle 使用 Visual Studio 在 Windows7 上工作。我按照 GYP 方法构建 lib jingle 并在执行 libjingle.sln 文件后获得了 lib。

现在,当我尝试运行 pcp_main.cc 文件时,我遇到了链接器错误,经过一些解决后,我留下了 5 个链接器错误。有人可以帮我解决这些错误吗?

错误 5 error LNK1120: 4 unresolved externals C:\Users\username\documents\visual studio 2012\Projects\PCPTest\Debug\PCPTest.exe 错误 3 错误 LNK2001: unresolved external symbol "protected: virtual bool __thiscall buzz::JingleInfoTask:: HandleStanza(class buzz::XmlElement const *)" (?HandleStanza@JingleInfoTask@buzz@@MAE_NPBVXmlElement@2@@Z) C:\Users\username\documents\visual studio 2012\Projects\PCPTest\PCPTest\pcp_main.obj

错误 1 ​​错误 LNK2001: 无法解析的外部符号 "public: virtual int __thiscall buzz::JingleInfoTask::ProcessStart(void)" (?ProcessStart@JingleInfoTask@buzz@@UAEHXZ) C:\Users\username\documents\visual studio 2012\Projects \PCPTest\PCPTest\pcp_main.obj

错误 2 错误 LNK2019:未解析的外部符号“public: void __thiscall buzz::JingleInfoTask::RefreshJingleInfoNow(void)” (?RefreshJingleInfoNow@JingleInfoTask@buzz@@QAEXXZ) 在函数“public: void __thiscall AutoPortAllocator::SetXmppClient(class buzz ::XmppClient *)" (?SetXmppClient@AutoPortAllocator@@QAEXPAVXmppClient@buzz@@@Z) C:\Users\username\documents\visual studio 2012\Projects\PCPTest\PCPTest\pcp_main.obj

错误 4 错误 LNK2019:未解析的外部符号 _ imp _InternetQueryOptionW@16 在函数“bool __cdecl talk_base::GetIeLanProxySettings(char const *,struct talk_base::ProxyInfo *)”中引用 (?GetIeLanProxySettings@talk_base@@YA_NPBDPAUProxyInfo@1@@Z) C:\Users\username\documents\visual studio 2012\Projects\PCPTest\PCPTest\libjingle.lib(proxydetect.obj)

我的包含文件夹指向

C:\Users\username\Desktop\libjingle\trunk\testing C:\Users\username\Desktop\libjingle\trunk\

和 lib 文件夹

C:\Users\username\Desktop\libjingle\trunk\build\Debug\lib

其他依赖项具有所有可用库的绝对路径。

C:\Users\username\Desktop\libjingle\trunk\build\Debug\lib\audio_processing_sse2.lib
C:\Users\username\Desktop\libjingle\trunk\build\Debug\lib\bitrate_controller.lib
C:\Users\username\Desktop\libjingle\trunk\build\Debug\lib\CNG.lib

... 
... 
...

我正在使用的源代码在这里。

http://pastebin.com/GATFYWnW

4

1 回答 1

0

得到了答案!

可以通过添加以下行来删除错误 4

#pragma comment(lib, "Wininet.lib")

其余错误对应于jingleInfoTask.cc 和JingleInfotask.h 文件。看到解决方案文件(libjingle.sln)在构建库时没有这些文件,这有点令人惊讶。解决方法是将 jingleinfotask.cc 和 jingleinfotask.h 文件添加到 xmpp 文件夹并重新构建 libjingle.sln 文件。

这将生成jingleinfotask.obj 和所需的lib 文件。确保将生成的 lib 文件指向项目属性的链接器部分的附加依赖项部分。

于 2013-07-15T05:44:56.023 回答