作者StubbornLin (Victor)
看板Programming
标题Re: [问题] MinGW/MSYS 问题出在哪?(详细说明)
时间Sat Jun 14 21:22:49 2008
※ 引述《previewslave (虾虾虾虾 来玩围棋吧)》之铭言:
: 错误讯息:
: C:/WINDOWS/Temp/ccxlbAde.o:01.cpp:(.text$_ZN5boost4asio6detail12winsock_i
: nitILi2ELi0EE7do_initC1Ev[boost::asio::detail::winsock_init<2, 0>::do_ini
: t::do_init()]+0x1f): undefined reference to `WSAStartup@8'
WSAStartup是winsock的
所以要link ws2_32
基本上boost的link看你用了哪部份,连那部份就好
但是有些会用到作业系统相关的其它API,就要连除了那些以外的lib
以boost::asio在windows下为例,除了ws2_32,还要加上Mswsock,因为它用到了AcceptEx
最简单知道哪个undefined reference to xxxx是要link哪个的方法
就是把它贴到MSDN或是google去找这个要link哪个
以上面那个为例
WSAStartup
在MSDN就有写
QuickInfo
Windows NT: Yes
Windows: Yes
Windows CE: Use version 1.0 and later.
Header: Declared in winsock2.h.
Import Library: Link with ws2_32.lib.
还有,除此之外最後一点要注意的是,这些library有些有相依的顺序
所以在link的顺序上有时要做一下调整它才能正确的link
以上参考看看
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.170.1.194