簡體   English   中英

我正在嘗試在DevC ++中編譯套接字程序,但是每次執行此操作時,都會收到很多類似以下的鏈接器錯誤:

[英]I'm trying to compile a socket program in DevC++ but everytime I do it I get a lot of linker errors like these:

我以前曾在Linux中成功運行過套接字程序,但必須將其導出到WindowsXP,並且我必須承認我對WindowsXP編程相對較新。 這些是我在WindowsXP版本中使用的頭文件

[Linker error] undefined reference to `WSAStartup@8'
[Linker error] undefined reference to `htons@4'
[Linker error] undefined reference to `inet_pton'
[Linker error] undefined reference to `socket@12'
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
//#include <winsock.h>
#include <winsock2.h>
#include <stdio.h>
#include <string.h>
#include <ws2tcpip.h>
#include <stdlib.h>
#include <stdio.h>
// Need to link with Ws2_32.lib, Mswsock.lib, and Advapi32.lib
#pragma comment (lib, "Ws2_32.lib")
#pragma comment (lib, "Mswsock.lib")
#pragma comment (lib, "AdvApi32.lib")
int main() {
int iResult;
WSADATA wsaData;
// Initialize Winsock
iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
if (iResult != 0) {
    printf("WSAStartup failed: %d\n", iResult);
    return 1;
}
getch();return 0;}

我只是在Internet上的示例套接字程序中找到了這些頭文件,但我不知道我是否真的需要所有這些頭文件,以及我是否應該使用winsock.h或winsock2.h。 我還了解到,要解決這些鏈接器問題,我需要將庫鏈接到程序,這是我現在的主要問題。 如何鏈接WindowsXP中的庫並使DevC ++中的程序正常工作? 順便說一下,我正在使用C編程語言。 請幫我解決這個問題。

嘗試-。菜單-項目-項目選項-參數-鏈接器,單擊[添加庫或對象]按鈕,然后添加“您的Dev-Cpp目錄” /lib/libws2_32.a

您必須添加WSAStartup htons inet_pton socket函數庫進行鏈接。

一些帶有.a文件。

ctrl + h > Parameters -> Add library or object

瀏覽一些類似C:\\Program Files\\CodeBlocks\\MinGW\\lib然后找到您的對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM