0

アプリケーションを作成し、Gentoo で実行する必要がありますが、実行しようとすると、次のメッセージが表示されます。

/lib/libc.so.6: バージョン `GLIBC_2.3.4' が見つかりません (/usr/local/myapp/lib/myapplib.so.1 で必要)

このgentooの現在のGLIBCバージョンは2.3.2です。

権限がないため、この glibc を更新できません。そのため、glibc を同じバージョン (2.3.2) に「ダウングレード」する必要があります ... どうすればよいですか?

わかりました、

4

2 に答える 2

1

「/lib/libc.so.6: バージョン `GLIBC_2.3.4' が見つかりません」という問題は、古いバージョンの glibc を使用しているシステムで、新しい glibc に対してコンパイルされたバイナリを実行しようとした場合に発生します。このため、glibc のダウングレードは強くお勧めしません。

あなたがアプリケーションを作成したと言うので、最も簡単な解決策は、アプリケーションを実行する予定のシステムでアプリケーションを再コンパイルすることだと私には思えます。

于 2011-05-24T01:52:29.520 に答える
0

私は実際に同じ問題に取り組んでいるので、役立つ情報があるかもしれません。

つまり、バイナリは libc.so.6 を探すようにコンパイルされています。GLIBC_2.3.4 は libc.so.5 にあります。私の知る限り、開発マシンで glibc をダウングレードすると、他のプログラムの一部が正しく動作しない可能性があります (現在のバージョンを探すようにコンパイルされているため)。どういうわけか、CentOS/RHEL には、このエラーを発生させずに現在の glibc と共存できる compat-glibc パッケージがあります。開発ボックスで CentOS/RHEL を使用している場合は、そのパッケージをインストールして再コンパイルすれば、準備完了です。古いライブラリを探すには、古いコンパイラを使用する必要がある場合があります。CentOS/RHEL で開発していない場合は、続行してください。

今日の私の攻撃計画は、ソースから glibc をコンパイルすることです。これは、古いバージョンの glibc とほぼ同時期にリリースされたコンパイラを使用することを意味します。いくつかの障害 (古いバージョンの buildutils が必要になるなど) に遭遇するかもしれませんが、libc.so.5 がコンパイルされて /usr/local/lib にインストールされると、私のアプリケーションはその前にそれを見つけてくれることを願っています。 /lib で libc.so.6 を検索します。

それで、それがあります。気弱な人向けではなく、すぐに解決できるものではありません。今日はこれをテストする予定なので、これが正しい解決策だとは言えません。どうか、ハイブマインド.. 私が完全に間違っていたら、私を正して、この哀れな魂をこの曲がりくねった曲がりくねった道から救ってください :-)

編集: glibc ソースへのリンク

于 2011-04-08T12:37:21.217 に答える