首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Eclipse C++ 專案引用 ws2_32.lib 解決 undefined reference 錯誤

     編輯:程式設計綜合問答

在 Eclipse CDT 中使用 Winsock2,雖加了 #pragma comment(lib,"ws2_32.lib") 仍報 undefined reference to 錯誤。原因是 MinGW/GCC 不支援 #pragma comment,需在連結器設定中顯式加入庫路徑與庫名稱。

設定步驟

  1. 右鍵專案 → Properties → C/C++ Build → Settings。
  2. 選 Tool Settings 標籤 → MinGW C++ Linker → Libraries。
  3. Libraries (-l) 區域點擊 +,輸入 ws2_32。
  4. Library search path (-L) 區域點擊 +,添加 MinGW 安裝目錄下的 lib 路徑(通常已在系統路徑可省略)。
  5. Apply → OK,Clean Project 再建置。

程式碼包含

#include <winsock2.h>
#include <ws2tcpip.h>
// 需在 Windows.h 之前包含 winsock2.h,避免衝突
#pragma comment(lib, "ws2_32.lib") // 此行僅對 MSVC 有效,保留無妨

常見坑

  • 未呼叫 WSAStartup 就使用 socket API。
  • 32/64 位元庫不匹配:確保專案編譯目標與 MinGW 版本一致。
  • 防火牆/殺毒軟體攔截網路呼叫。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved