MinGWにてSocket通信を行うには
MinGWにてsocket通信のプログラムを開発していた際に困ったので備忘録として残しておきます。
MinGWはUNIX風味のシェル環境になりますが、WindowsAPIを搭載したWindowsアプリケーションの開発環境となります。
そのためなのか、MinGWはWinsockを使用するようになっており、MinGWのincludeフォルダの中に sys/socket.h は入っておりません。
Winsockを使うためには、 #include にてインクルードしてあげれば良いのです…が、他にもコンパイル時に ws2_32.lib もリンカに設定してあげないといけません。
設定するにはコンパイル時に下記のようなコマンドを入力します。
gcc -lwsock32 main.c -lws2_32
MinGWでは通信用にWinsockを使うと言う情報は書かれていますが、ws2_32.lib をリンカに設定する方法を詳しく書いているサイトは見かけなかったので探すのに時間がかかりました。