Mingw32ceでSocketプログラミング

Mingw32向けのSocketサンプルをMingw32ceでコンパイルしてみた。

$ arm-wince-mingw32ce-gcc srv.c
srv.c:285:2: warning: no newline at end of file
(.text+0x28): undefined reference to `WSAStartup'
(.text+0x64): undefined reference to `closesocket'
...
(一部省略)

あ、Socketを使うから"-lsock32"を使わなきゃ。

$ arm-wince-mingw32ce-gcc srv.c  -lsock32
srv.c:285:2: warning: no newline at end of file
/opt/mingw32ce/lib/gcc/arm-wince-mingw32ce/4.1.0/../../../../arm-wince-mingw32ce
/bin/ld: cannot find -lsock32
collect2: ld returned 1 exit status

あれ、だめっぽい。


Mingw32ceのLibフォルダーを探してみると、どうやら"libws2.a"がSocket関連ぽい。

それならこれでどうだ。

$ arm-wince-mingw32ce-gcc srv.c -lws2 -lmingwex
srv.c:285:2: warning: no newline at end of file
undefined reference to `_endthread'
undefined reference to `_endthread'
undefined reference to `_beginthread'
collect2: ld returned 1 exit status
(一部省略)

あれ、スレッド関連はDLLリンク不要なはずだけど...。

何でうまくいかないんだろう?