高分求解关于gloox 0.9.9.5静态库问题


我从网上下载原文件后(0.9.9.5)使用vs2005将编译类型变为静态lib后直接编译成功
但使用那个编译好的lib写了个简单的登陆程序,然后选择在静态库中使用MFC
每次编译就出现
1>StdAfx.cpp
1>正在编译...
1>34.cpp
1>g:\work\34\src\clientbase.h(198) : warning C4800: 'const gloox::TLSPolicy' : forcing value to bool 'true' or 'false' (performance warning)
1>g:\work\34\34.cpp(96) : warning C4101: 'szJid' : unreferenced local variable
1>正在链接...
1>LIBCMT.lib(invarg.obj) : error LNK2005: __initp_misc_invarg 已经在 LIBCMTD.lib(invarg.obj) 中定义
1>LIBCMT.lib(invarg.obj) : error LNK2005: __invoke_watson 已经在 LIBCMTD.lib(invarg.obj) 中定义
1>LIBCMT.lib(invarg.obj) : error LNK2005: __set_invalid_parameter_handler 已经在 LIBCMTD.lib(invarg.obj) 中定义
1>LIBCMT.lib(invarg.obj) : error LNK2005: __get_invalid_parameter_handler 已经在 LIBCMTD.lib(invarg.obj) 中定义
1>LIBCMT.lib(invarg.obj) : error LNK2005: "void __cdecl _invoke_watson(unsigned short const *,unsigned short const *,unsigned short const *,unsigned int,unsigned int)" (?_invoke_watson@@YAXPBG00II@Z) 已经在 LIBCMTD.lib(invarg.obj) 中定义
1>LIBCMT.lib(invarg.obj) : error LNK2005: __invalid_parameter 已经在 LIBCMTD.lib(invarg.obj) 中定义
1>LIBCMT.lib(invarg.obj) : error LNK2005: "void __cdecl _invalid_parameter(unsigned short const *,unsigned short const *,unsigned short const *,unsigned int,unsigned int)" (?_invalid_parameter@@YAXPBG00II@Z) 已经在 LIBCMTD.lib(invarg.obj) 中定义
1>LIBCMT.lib(invarg.obj) : error LNK2005: ___pInvalidArgHandler 已经在 LIBCMTD.lib(invarg.obj) 中定义
1>   正在创建库 .\Debug/34.lib 和对象 .\Debug/34.exp
1>LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
1>LINK : warning LNK4199: 已忽略 /DELAYLOAD:OleAcc.dll;未找到来自 OleAcc.dll 的导入
1>gloox.lib(connectiontcpbase.obj) : error LNK2019: 无法解析的外部符号 ___WSAFDIsSet@8,该符号在函数 "protected: bool __thiscall gloox::ConnectionTCPBase::dataAvailable(int)" (?dataAvailable@ConnectionTCPBase@gloox@@IAE_NH@Z) 中被引用
1>gloox.lib(connectiontcpbase.obj) : error LNK2019: 无法解析的外部符号 _select@20,该符号在函数 "protected: bool __thiscall gloox::ConnectionTCPBase::dataAvailable(int)" (?dataAvailable@ConnectionTCPBase@gloox@@IAE_NH@Z) 中被引用
1>gloox.lib(connectiontcpbase.obj) : error LNK2019: 无法解析的外部符号 _send@16,该符号在函数 "public: virtual bool __thiscall gloox::ConnectionTCPBase::send(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?send@ConnectionTCPBase@gloox@@UAE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 中被引用
1>gloox.lib(connectiontcpclient.obj) : error LNK2019: 无法解析的外部符号 _recv@16,该符号在函数 "public: virtual enum gloox::ConnectionError __thiscall gloox::ConnectionTCPClient::recv(int)" (?recv@ConnectionTCPClient@gloox@@UAE?AW4ConnectionError@2@H@Z) 中被引用
1>gloox.lib(dns.obj) : error LNK2019: 无法解析的外部符号 _closesocket@4,该符号在函数 "public: static void __cdecl gloox::DNS::closeSocket(int)" (?closeSocket@DNS@gloox@@SAXH@Z) 中被引用
1>gloox.lib(dns.obj) : error LNK2019: 无法解析的外部符号 _WSACleanup@0,该符号在函数 "private: static void __cdecl gloox::DNS::cleanup(void)" (?cleanup@DNS@gloox@@CAXXZ) 中被引用
..................


请问是什么原因?谢谢大家

4 个解决方案

#1


用Debug版本的静态库放到你的exe的Debug版本中

#2


exe与lib用相同的配置编译,都用Debug或都用Release。另外再连接Ws2_32.lib,看看还有哪些错误。

#3


谢谢 

#4


链接ws2_32.lib secur32.lib dnsapi.lib crypt32.lib几个引入库
智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告