2

Debian でコンパイルした CGI C++ アプリケーションを開発しています。このアプリを Ubuntu システムで実行すると、次のエラーが表示されます。

再配置エラー: /lib32/libresolv.so.2: シンボル strlen、バージョン GLIBC_2.0 がファイル libc.so.6 で定義されていません (リンク時の参照あり)

今何ができますか?Ubunto システムで再確認する必要がありますか? ライブラリを置き換えることはできますか?

編集

アプリケーションを にリンクし-staticます。Ubuntu システムで
コマンドを実行すると、そこで使用されている my が表示されました。ldd --versionEGLIB

4

1 に答える 1

3

このエラーが意味するのは、プログラムが、実行可能ファイルを実行するシステムでサポートされていない古いバージョンの GNU libc に対してコンパイル/リンクされていることです。

それを解決するためのいくつかのオプションがあります:

  1. コンパイルおよび実行時に、同じバージョンまたは互換性のあるバージョンの libc を使用していることを確認してください。
  2. 静的ランタイムにリンクします。
  3. Debian の環境に合わせて、古いバージョンの libc を Ubuntu システムにインストールします。
于 2012-05-31T12:32:54.100 に答える