大石@徳島大学です.

稲川様,詳細に回答いただきありがとうございます.

>> 簡単なプログラムをコンパイルしてみると,
>
>もしや、FreeBSD の cc でコンパイルしていませんか?

おっしゃるとおり,FreeBSDのg++を使ってコンパイルしようとしていました. orz


>FreeBSD の Linux emulation は Linux のシステムコールをエミュレートする
>ものであって、Linux の library を FreeBSD のバイナリから使えるようにする
>ものでは無い
>>という点について誤解があるように思われますが、いかがですか?

おっしゃるとおりです. orz


>linux_base には、ちゃんと libc(glibc)が含まれているので、
>Linux の gcc(というか ld)でコンパイル・リンクしてやれば、
>Linux emulation 環境で動かす事が出来る筈です。
>
># もしかしたら -L フラグを適切に設定する必要があるかも?
># Linux の ldconfig も必要だったかな?
>注意点としては、
>1) 必ず Linux の ld でリンクする事
>        FreeBSD と Linux では、同じELFでも違うバイナリであるという
>        印が付けられているので、FreeBSD でリンクしてしまうとFreeBSDの
>        システムコールとして処理されてしまう。
>2) linux.ko が load されている事
>        /etc/rc.conf に linux_enable="YES" と書いてリブートするか、
>        kldload で linux.ko を load するか、linux コマンドを実行するか
>        linux のバイナリが実行できる様にする。
>

今回のlibCg.soやlibCgGL.soのようなLinux用のライブラリを用いた
アプリケーションを開発するには,Linux用の開発環境(コンパイラ・リンカ)を
使う必要があるということですね.
つまり,Linux用開発環境自体をFreeBSDにインストールしてLinuxエミュレーションで動作させないと
上手くいかないわけですね.

#Linuxでコンパイルしたものを持ってきた方が楽かな・・・ (^^;


ご指摘ありがとうございました.

---------------------------------------
大石篤哉 @ 徳島大学 工学部  機械工学科
    [EMAIL PROTECTED]
---------------------------------------


メールによる返信