3

Visual Studio C++ (9.0 バージョン) のプロジェクトに Boost ライブラリ (特に Boost ファイルシステム) を使用しました。この Boost ライブラリは C ドライブにインストールされます。私のプロジェクトはすでに終了しているため、対応するデバッグとリリースがあります。

ここで、Boost ファイルシステムの特定の DLL をデバッグおよびリリースに含めたいと考えています。最初の質問は、どの DLL をコピーする必要があるかということです。ファイルシステム用の多くの DLL が表示されます。私が試したのは"boost_filesystem-vc90-mt-1_40.dll""boost_filesystem-vc90-mt-gd-1_40.dll"です。「vc90」から着想を得たので、Visual Studio 9.0 用ということでしょうか。

2 番目の質問です。Boost ファイルシステム DLL をデバッグまたはリリースに含めなくても、プロジェクトの EXE ファイルは機能しますか? なぜこれが起こっているのか誰でも説明できますか?環境変数にBoost Libraryパスがあるかどうかを確認しようとしましたが、残念ながらそこに見つけることができませんでした。どうもありがとう。

PS: 私は C++ と Boost の両方の初心者です。また、私が使用している別のライブラリは OpenCV で、対応する DLL (core、highgui、imgproc) を Debug と Release に既にコピーしており、これは完全に機能しています。

4

1 に答える 1

4

次の 2 つのオプションがあります。

を。Boost DLL をバイナリと共にデプロイします。あなたの質問に答える - もちろん、あなたのプロジェクトがBoostに依存している場合、実行時にライブラリが必要であり、バイナリはそれらなしでは起動しません。

プロジェクトのリリース構成をデプロイする場合は、boost_filesystem-vc90-mt-1_40.dllライブラリが必要です。一般に、ツールを使用してバイナリのすべての依存関係を確認できますDependency Walker

b. Boost ライブラリを静的にリンクします。この場合、バイナリは Boost DLL にランタイムの依存関係を持たないため、それらを展開する必要はありません。

于 2013-05-14T11:37:05.323 に答える