※ 引述《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