それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

CygwinでWindows用のをcppビルドする基本コマンド。rc(リソースファイル)も扱える

Cygwinだといろいろコンパイルできて楽しいです.最近はWin32API関連でコンパイルしてウィンドウ作ったりして遊んでみてる.

gccでコンパイル

cygwingcc、最新のgcc4は、windowsをクロスコンパイルに移動させたので、色々面倒。とりあえず動かすには次のコマンドが早い

 gcc-3 -mno-cygwin  -mwindows -o test.exe test.cpp

gcc4の代わりに、昔からのgcc-3を使う
-mno-cygwincygwin 依存をなくす
-mwindows はwindows.hを使う

ために指定するらしいです。


リソースファイルは .oファイルに変換してから使う

gccは .o でリンクするらしいです

失敗例

 gcc-3 -mno-cygwin  -mwindows -o test.exe menu01.cpp menu01.rc
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/bin/ld:menu01.rc: file format not recognized; treating as linker script
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/bin/ld:menu01.rc:1: syntax error
collect2: ld はステータス 1 で終了しました


普通にやるとリンカでこける.
windresコマンドでいったん、準備してからコンパイルする

 windres -o menu01.o menu01.rc  #menu01.oを作る
 gcc-3 -mno-cygwin  -mwindows -o test.exe menu01.cpp menu01.o


これでコンパイル出来ました.細かいエラーや警告は出るけど,Win32をgccで試すにはこれ位で十分なのかな