読者です 読者をやめる 読者になる 読者になる

cygwin1.dllに依存しないバイナリをコンパイルする

  • mno-cygwin オプションをつければよい。
$ gcc -mno-cygwin hello.c

$ objdump -p a.exe  | grep dll
        DLL Name: msvcrt.dll
        DLL Name: KERNEL32.dll

$ cygcheck  ./a.exe
.\a.exe
  C:\WINNT\system32\msvcrt.dll
    C:\WINNT\system32\KERNEL32.dll
      C:\WINNT\system32\ntdll.dll

実用ではconfigure が絡むので

$ CC="gcc -mno-cygwin" ./configure && make && make install

とか?

readlineなどのdllについては以下のような記述が見つかったが、空の.aを作成しているだけみたい。
ソース持ってこないと.aを作れないのかなぁ。
http://www.namazu.org/ml/namazu-win32-users-ja/msg01750.html

ただし、MinGW用のcursesとreadlineがないとCygwinのものをリン
クしようとするので、あらかじめ
% cd /usr/lib/mingw
% ar rc libcurses.a
% ar rc libreadline.a
としておいたほうがいいかもしれない。