ブーストをダウンロードしましたが、それは何千ものファイルの巨大なディレクトリです。私は gcc 3.4.5 を持っています - 現在出ているものと比べると古いバージョンですが、私が使い続けている古いプログラムで動作します。ブーストをインストールすることで、プログラムにもう少し優位性を与えることを考えていました。私の質問は、ブーストをインストールすると、プログラムが実行されなくなる可能性があるか、またはブースト ライブラリ ファイルが完全に独立したオブジェクトであるかということです。
2 に答える
私はあなたの質問を完全には理解していません。バイナリの配布について話しているのですか?ブーストを静的および動的にリンクできます。それらを静的にリンクすると、バイナリのサイズは少し大きくなりますが、boost システム ライブラリには依存しません。これは、Windows で行う一般的な方法です。Linux ベースのシステムでは、boost は通常、システム ライブラリに対して動的にリンクされ、一般に非常に信頼性が高くなります。ただし、filesystem や program_options などの一部のモジュールには、互換性のない API 変更の記録があります。
それとも古いバージョンのコンパイラとの互換性について話しているのでしょうか? Boost は、このような古い GCC と 100% 互換ではありませんが、コア機能は動作するはずです。
質問を正しく理解し、コンパイラのバージョンの問題を無視すれば、答えはイエスです。ヘッダーのみではないブースト ライブラリは、通常、動的ライブラリのセット (つまり、プラットフォームに応じて .dll、.so、または .dylib ファイルのセット) としてすぐに使用できるようにビルドされます。
したがって、boost の新しいバージョンをビルドしてインストールすると、次の状況で既存のインストール済みプログラムが台無しになる可能性があります。
システムに既にプログラムがインストールされている場合、実行時にヘッダー以外のブーストライブラリの既存のバージョンにリンクします
新しいバージョンにインターフェイスの変更または微妙な実装の変更があった場合
次に、インストールした新しいブースト ライブラリによって、既存のプログラムが台無しになる可能性があります (より正確な状況の詳細によっては、実行できないか、微妙なバグが発生する可能性があります)。