来自libjingle的pcp_main示例中的链接器错误

时间:2013-07-14 10:29:49

标签: visual-studio linker libjingle

我正在努力让libjingle使用visual studio在windows7上工作。我遵循GYP方法来构建lib jingle并在执行libjingle.sln文件后获得了lib。

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

  

错误5错误LNK1120:4个未解析的外部C:\ Users \ username \ documents \ visual studio   2012 \ Projects \ PCPTest \ Debug \ PCPTest.exe错误3错误LNK2001:   未解决的外部符号“protected:virtual bool __thiscall   buzz :: JingleInfoTask :: HandleStanza(类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(类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 \用户名\桌面\设的Libjingle \树干\测试   C:\ Users \用户名\桌面\设的Libjingle \树干\

和lib文件夹

  

C:\ Users \用户名\桌面\设的Libjingle \树干\构建\调试\ 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

1 个答案:

答案 0 :(得分:0)

得到了答案!

可以通过添加以下行

来删除错误4
#pragma comment(lib, "Wininet.lib")

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

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