1

一連の静的ライブラリと動的ライブラリが付属する Linux C SDK をダウンロードしました。Readme には次のように書かれています。

この SDK は、gcc バージョン 4.5.1 でコンパイルされました。

アプリケーションが 2 つの異なる libcs​​ をロードすることになり、結果として 2 つの異なるヒープが生じるため、この SDK バイナリを他の gcc バージョンと混在させるべきではありません。ヒープを混在させると、別のヒープによって割り当てられたメモリを解放しようとすると、アプリケーションがクラッシュします。

このようなことは聞いたことがなく、ウェブで検索しても確証は得られませんでした。私が見つけたのはABIに関するものでしたが、私が理解しているように、これは単に、ライブラリがまったく実行されないという意味で、私のGCCバージョンと互換性がない可能性があることを意味します. これは、libc のバージョンやヒープとは関係ありません。

では、Readme に書かれていることは本当ですか? または、より一般的な用語で言えば、インターネットからダウンロードしたライブラリを、コンパイルされたものとは別の GCC バージョンで使用するべきではありませんか? 異なる GCC バージョンでコンパイルされた複数のライブラリを使用したい場合はどうすればよいですか?

みんなありがとう、モリッツ

4

1 に答える 1