エラーを与えていないが、私はライブラリとリンクしての実行ファイルを作成しようしようとすると、私のコードlws2_32とリンクする代わりに、どのライブラリが欠けていますか?私は、ソケットプログラミングを初めと私はコマンド</p> <pre><code>gcc -c file_name.c </code></pre> <p>すなわちエラーなしで正しく私のプログラムをコンパイルすることができる午前
gcc file_namme.o -o file_name -lws2_32
によりすなわち、それははinet_ptonへの未定義の参照のエラーをスローを実行している、私は私が行方不明、なぜこのエラーは、次のように私のコードがある
があるのですどのライブラリをリンク知りたいです
#include<stdio.h>
#include<stdint.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<winsock2.h>
#include<windows.h>
#include<ws2tcpip.h>
#define WIN32_LEAN_AND_MEAN
#pragma comment(lib, "Ws2_32.lib")
WSADATA wsaData;
void diewithusermsg(const char* msg , const char* detail);
void diewithsysmsg(const char* msg);
int main(int argc,char* argv[])
{
if(argc<3 || argc>4)
{
diewithusermsg("Parameters","<server address> <Echo String> <port number>");
}
char* servip=argv[1];
char* echostring=argv[2];
uint16_t servport=(argc==4)?atoi(argv[3]):7;
int sock = socket(AF_INET, SOCK_STREAM , IPPROTO_TCP);
if(sock<0){
diewithsysmsg("socket() failed");
}
struct sockaddr_in servAddr;
memset(&servAddr,0,sizeof(servAddr));
servAddr.sin_family=AF_INET;
int rtnVal = inet_pton(AF_INET,servip,&servAddr.sin_addr.S_un);
}
void diewithusermsg(const char* msg, const char* detail)
{
fputs(msg,stderr);
fputs(":",stderr);
fputs(detail,stderr);
fputs("\n",stderr);
exit(1);
}
void diewithsysmsg(const char*msg)
{perror(msg);
exit(1);
}
@MichaelWalzでも、私は同じことを言いましたが、file_name.cはそれを編集可能なフォーマット、つまりマシンコードに暗号化していますが、私は見つからないライブラリを探していますか? –
'inet_pton'を' InetPton'に置き換えてみてください –
私はすでにそれを試していましたが、InetPtonのundefienedな参照は、inet_ptonのマイクロソフトのドキュメンタリーでさえ言及していないことを教えていません –