トップ 一覧 置換 検索 ヘルプ RSS ログイン

WindowsでのCコンパイラの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!gnupack/cygwin
Windows上でgnupack(cygwin)のgccを使う方法。
MinGWではなく、普通にgccを使う。

!メリット
* 手軽
* とりあえず、すぐ動かせる
!デメリット
* コンパイル後のexeを実行するには、cygwin.dllが必要になる
!コンパイル例
 gcc test.c

!!!MinGW
!!gnupackでMinGWを使う
gnupackでMinGWを使う方法。
環境を作ってしまえば、結構使える。

!メリット
* exe単体で実行可能。(cygwin.dll等が不要)
* コンパイラだけでなく、環境として整備しやすい
!デメリット
* 環境を整えるのがちょっと手間

!コンパイル例
 i686-w64-mingw32-gcc test.c

!!Msys2でMinGWを使う
Msys2にMinGWを使う方法。
gnupackとほぼ同じ。

!!LinuxでMinGWを使う(クロスコンパイル)
MinGWはLinuxで使えるので、Linux上でクロスコンパイルする方法。
実行確認はwineを使うか、windowsにexeをコピーして実行する。

!メリット
* 普段Linuxで開発している場合は、そのままの環境が使える。

!デメリット
* Windowsでの確認の際にexeをコピーする必要がある(wine使ってもいいけど)
* 環境を整えるのがちょっと面倒

!コンパイル例
 i686-w64-mingw32-gcc test.c

!!知っておいたほうがいいコンパイルオプション
,オプション,意味
,-s, strip。オブジェクトファイルのシンボルを削除することによってもファイルサイズを小さくする
,-static, 実行時にdllがありません。とか出たら static にして実行バイナリにライブラリを組み込む。
,-mwindows,コンソールアプリではなく、ウインドウを使うようなアプリをコンパイルするときに必要

{{category2 プログラミング言語,C}}