windows cygwinでobject-cを使う


拡張子はxxx.mで終了


コンパイルは
$ gcc -o hello-objc hello-objc.m -lobjc

cygwinでbuildするとcygwin1.dllまでリンクされてしまう
こいつがあるとGPLに感染するので注意する。(GPLを使ったものはソース公開義務がある)

$ objdump.exe -p hello-objc.exe | grep "DLL Name"
DLL Name: cygwin1.dll
DLL Name: cyggcc_s-1.dll
DLL Name: KERNEL32.dll

こいつを避けるには gcc3までなら-mno-cygwinをつければよかったが
gcc4からはなくなっている。一番らくな解決方法はgcc-3でビルドする。


$ gcc-3 -mno-cygwin -o hello-objc hello-objc.m -lobjc


$ objdump.exe -p hello-objc.exe | grep "DLL Name"
DLL Name: KERNEL32.dll
DLL Name: msvcrt.dll

About