共通で使えるソースも試す
前述のhello.c
はWindowsのAPIを利用したプログラムなので、
クロスコンパイルを行ったlinux側では実行できない*1。
同一のソースを使い普通にコンパイルするかクロスコンパイルするかの違いだけで、
それぞれのターゲット環境で実行できるものを試してみる。
hello.c
#include <stdio.h> int main(void) { printf("%s\n", "hello world"); printf("%s\n", "こんにちは世界"); return 0; }
をUTF-8で作成する。
linux環境での実行イメージを作成するなら、
$ gcc -Wall -ansi -pedantic -o hello hello.c $ $ ./hello hello world こんにちは世界 $
だし、Windowsへ持っていくなら、
$ i686-w64-mingw32-gcc -Wall -ansi -pedantic -o hello.exe hello.c -fexec-charset=Shift_JIS ...on Windows Z:\> hello.exe hello world こんにちは世界 Z:\>
で作成できる。
文字列をMBCSで扱っているので-fexec-charset=Shift_JIS
がないと文字化けする。
*1:wineとか入れればできるが