ダイナミック リンカー「バージョン情報がありません」

ダイナミック リンカー「バージョン情報がありません」

プログラムとそれに必要ないくつかのライブラリを別のマシンにコピーすると、プログラムで LDD を実行すると「バージョン情報が利用できません」というメッセージが表示されます。

なぜこのようなことが起こるのかはわかっていますが、それが大きな問題であるかどうかを知りたいだけです。無視してもいいのでしょうか? プログラムは実行され、期待どおりの動作を示しているようです。将来、これが再び問題になる可能性はありますか?

答え1

からglibc ソースのためにldd

if (...) {
    /* The file has no symbol versioning.  I.e., the dependent
       object was linked against another version of this file.  We
       only print a message if verbose output is requested.  */
    ...
    errstring = make_string ("no version information available ...");
    ...
}

これは「バージョンの不一致」を意味し、null との不一致も含まれます。それ以上でもそれ以下でもありません。また問題が発生するのでしょうか? 残念ながら、答えは「可能性あり」です。探していたバージョンがないと、バグが発生する可能性があります。もちろん、すべてが正常であると表示されていても、バグが発生する可能性があります。

心配する必要はありますか? これが大規模なプロセスが依存している実稼働システムである場合、他のシステムからバイナリをコピーすることはおそらく良い考えではありません。これがあなただけのためである場合、または実際の問題に取り組むことができるように物事をうまく進めるためだけである場合は、前進し、向上してください。

関連情報