FreeBSDでLinuxプログラムを作る
FreeBSDでLinuxバイナリを生成するにはdevel/linux_devtoolsが要るはずだったがPortsから消えてる・・・
http://www.freshports.org/devel/linux_devtoolsを見ると9月頃まではあったらしい。
調べてみると、既にemulators/linux_base-fc4が入ってるのでこの場合はdevel/linux_devtoolsの代わりにemulators/linux_dist-gentoo-stage3を入れればいいらしい。
以下作業工程
インストール
mulators/linux_base-fc4が入ってる時は、オプションに何も付けずにPortsでインストールする。
すると/usr/local/gentoo-stage3以下にGentooの環境が出来上がるのでここにchrootして使う。
chrootする準備
rootが使ってるシェルにshからシンボリックリンクを貼る。
自分はtcshを使ってるのでこうなる。
# cd /usr/local/gentoo-stage3/bin # ln -s sh tcsh
# mkdir /usr/local/gentoo-stage3/dev # mount_devfs devfs /usr/local/gentoo-stage3/dev
chrootする
# chroot /usr/local/gentoo-stage3
とするとGentoo環境になる。
とりあえずHello worldを作ってみる。
# cd /tmp # cat > test.c #includevoid main(void) { printf("Hello, world!\n"); } # cc test.c test.c: In function `main': test.c:4: 警告: return type of 'main' is not `int' # ./a.out Hello, world!
とりあえず生成したa.outはVine Linux 4.0でも動作確認した。