[EMAIL PROTECTED] wrote:
> やったこと:
> (1)FreeBSD-6.0Rインストール
> (2)nVidiaのグラフィックドライバ(Ver.7676) インストール
> (3)nVidiaのCg-toolkit(Cg-1.4.0-4_x86.tar.gz linux用バイナリ)をダウンロードし
>    /compat/linux/usrに展開
> 
> 簡単なプログラムをコンパイルしてみると,

もしや、FreeBSD の cc でコンパイルしていませんか?

> /compat/linux/usr/lib/libCgGL.so: undefined reference to [EMAIL PROTECTED]'

[EMAIL PROTECTED] というような参照をするのは、
(GLIBC という所から推測出来る通り) Linux の libc.so がリンクされていない
場合にあたりますが、

> そこで,
> (4)ports から linux_base を make install 
>    ---> 変わらず

このエラーの対処として linux_base をいれている所から推測するに、
おそらく大石さんには

FreeBSD の Linux emulation は Linux のシステムコールをエミュレートする
ものであって、Linux の library を FreeBSD のバイナリから使えるようにする
ものでは無い

という点について誤解があるように思われますが、いかがですか?

> (5)FedoraCore4からlibc.so.6 をコピー
>    ---> 変わらず

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 のバイナリが実行できる様にする。

あとは、いろいろ遊んで見て下さい(^^;

-- 
稲川 史(ふひと)
                http://www.za.ztv.ne.jp/fuhito/
                        NR24 unofficial patch updated

メールによる返信