Visual Studio 2010 を使用しています。プロジェクトを開始する前に、cuda SDK 4.2 をインストールしました。その後、opencv 2.4.2 をインストールしました。私のプロジェクトでは、opencv のみを使用していますが、正しく動作します。ただし、別のコンピューターでプログラムを実行しようとすると、cuda dll (cudart32_42_9.dll、npp32_42_9.dll、nvcuda.dll など) が必要であると表示されます。私はcudaをまったく使用せず、プロジェクトプロパティでcudaを参照しません。これらの依存関係を削除する方法を知りたいです。Visual Studio が使用しない dll を追加する理由がわかりません。
2630 次
1 に答える
1
ビルド済みの OpenCV 2.2 以降には、2 つのバージョンのバイナリ (dll) が付属しています。
\build\gpuディレクトリのdllはスーパーセットであり、CUDA サポートでビルドされています。したがって、それらを使用するには、CUDA ランタイム dll (cudart、npp など) が必要です。OpenCV の GPU 機能を使用する場合は、これらのバイナリが必要です。これらは、システムに GPU が存在するかどうかを確認するためにも使用できます。
OpenCV のビルドディレクトリの x86 または x64 フォルダーに存在する dll の他のバージョンは、CUDA サポートなしでビルドされます (ただし、gpu dll もそのディレクトリに存在します)。これらのバイナリを使用するために cuda dll は必要ありません。
これらのバージョンはどちらも Intel スレッド ビルディング ブロックのサポートを使用して構築されているため、デバッグ構成とリリース構成にはそれぞれ tbb_debug.dll と tbb.dll が必要です。したがって、OpenCV の CPU 関数を使用すると、TBB Accelerated になります。
于 2012-09-19T17:03:47.603 に答える