51237


Windows10の環境でC言語プログラム（server.c)を作成し、gcc(MinGW)でコンパイルをしようとしたら、下記のようなコンパイルエラーが発生してしまいます。

[code]

    C:\Users\name\Desktop>gcc server.c -o server
    C:\Users\name\AppData\Local\Temp\ccGmbeVJ.o:server.c:(.text0x2b) undefined reference to `WSAStartup@8'
    
[/code]

など「WSAStartup@8」の部分が「socket@12」や「WSAGetLastError@0」や  
「htons@4」など場合のエラーが発生してしまいます。

ちなみにヘッダファイルは、

[code]

    #include <stdio.h>
    #include <winsock2.h>
    
[/code]

をしています。

Windows環境でUNIXを使用できる「msys2」や「Cygwin」を使用してのコンパイルはもうすでにやりましたがWindows用プログラムを作成したいのでそちらの方法は避けたいです。

gcc(MinGW)で先ほどのコンパイルエラーがなおる方法をできれば詳しく教えてください。。  
「こうするしかない」っていう場合も教えてください。


CC BY-SA 4.0
2018-12-15T15:56:02.970
51236
2018-12-15T16:44:36.277
2018-12-15T16:44:36.277
3060
31372
question
c mingw
コンパイルエラー undefined reference to `WSAStartup@8'などが発生


本家Stack Overflowに同様の質問がありました。  
[mingw - C - Undefined Reference to WSAStartup@8' - Stack
Overflow](https://stackoverflow.com/questions/34384803/c-undefined-reference-
to-wsastartup8)

[解決したらしい回答](https://stackoverflow.com/a/34385112/10216107)によると、Winsockライブラリ（`ws2_32`？）への依存を解決するために`-lws2_32`という引数を追加する必要があるようです。


CC BY-SA 4.0
2018-12-15T16:31:58.283
51237
2018-12-15T16:31:58.283
29826
51236
answer