口内炎が痛くてやるきでないので、気晴らしにクロスコンパイルしてみました。
クロスコンパイル、名前は知っていましたがやったことありません。なんだか必殺技みたいでかっこいいです。
試した環境は CentOS 6.5 です。
まず mingw32-gcc というものが必要らしいので入れます。
$ sudo yum install mingw32-gcc
ソースファイルを作ります。
hello.c
#include <stdio.h> #include <stdlib.h> int main() { printf("hello, world\n"); system("pause"); return 0; }
コンパイルします。Windows なので拡張子は exe にしています。
$ i686-pc-mingw32-gcc hello.c -o hello.exe
出来あがったバイナリを見てみます。先頭の "MZ" が Windows っぽい雰囲気を醸し出しています。
$ hexdump -C hello.exe | head -1 00000000 4d 5a 90 00 03 00 00 00 04 00 00 00 ff ff 00 00 |MZ..............|
Windows にコピーして実行してみます。
C:\>hello.exe hello, world 続行するには何かキーを押してください . . .
こういうのはクロスコンパイルとは呼ばないのかもしれないけど、そういうのの本職じゃないから細かいことはわかりません。