Eclipse c++ 中[Linker error] undefined reference to `WSAStartup@8'的解决办法
今天搭建了一個Eclipse+MinGW的C++開發環境,Eclipse的使用就是方便。
于是,就寫了一個socket程序,MinGW支持winsock2,但到編譯的時候總是報錯:
undefined reference to `inet_addr@4'
undefined reference to `gethostbyname@4'
undefined reference to `WSAGetLastError@0'
undefined reference to `inet_ntoa@4'
undefined reference to `WSAStartup@8'
undefined reference to `inet_ntoa@4'
undefined reference to `socket@12'
undefined reference to `htons@4'
undefined reference to `bind@12'
undefined reference to `listen@8'
undefined reference to `accept@12'
undefined reference to `recv@16'
undefined reference to `send@16'
undefined reference to `shutdown@8'
undefined reference to `closesocket@4'
undefined reference to `closesocket@4'
undefined reference to `WSACleanup@0'
這錯一看,要么是程序沒有加載winsock2.h庫,要么是程序make的時候出錯。
檢查console連接結果,發現確實是缺少socket的鏈接參數:-lws2_32.
在eclipse中添加make參數的方法:
右鍵工程 -> properties -> C++ build -> settings -> Tool Settings
在左邊樹形結構中選中 MinGW C++ Linker,此時在右邊的command line pattern就是make時的參數設置,在后面加上-lws2_32就可以了。
再編譯,成功了。
設置的截圖如下:
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
轉載于:https://www.cnblogs.com/wangicter/archive/2012/03/06/4767373.html
總結
以上是生活随笔為你收集整理的Eclipse c++ 中[Linker error] undefined reference to `WSAStartup@8'的解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android深入浅出系列之实例应用—弹
- 下一篇: lamp mysql5.5 LAMP平台