Visual Studioプロジェクトをコンパイルするたびに、MSVCP120d.dllが見つからないというメッセージが表示されます。 Googleは私を助けられません。すでにいくつかの再配布可能ファイルをインストールしましたが、助けにはなりませんでした。私もこれを見つけました:
Msvcp120d.dll C++ランタイムのデバッグバージョン。再配布は許可されていません。
http://msdn.Microsoft.com/en-us/library/windows/hardware/dn448963(v = vs.85).aspx
コメントから、問題はVisual Studio 2012でコンパイルされたプロジェクトでVisual Studio 2013でビルドされたdllを使用したことが原因でした。この理由は、dll vc11、vc12を含むフォルダーという名前のサードパーティライブラリでした。これはVisual Studioのバージョン(Visual Studio 2010を除く)と一致しないため、コンパイラバージョン(4桁未満)を使用するシステムには注意する必要があります。
Microsoft C++ランタイムdllは、Visual Studioのバージョンではなく、コンパイラバージョンにも基づいて2桁または3桁のコードを使用します。
Visual Studio 2015、2017、2019の間にバイナリ互換性があります。
私はこれに関する解決策を探すのに時間を浪費していることに気づきました、そして、私は将来再びそれをすることを疑います。それで、ここに私とこれが役に立つと思うかもしれない他の人へのメモがあります。
MSVCP120.DLLがない場合、Visual Studio 2013(x86およびx64)用のVisual C++再頒布可能パッケージがインストールされていないことを意味します。それをインストールして再起動すると、このファイルがc:\ Windows\System32にあります。
MSVCP120D.DLLが見つからない場合、これは実行しようとしているアプリケーションがデバッグモードでビルドされていることを意味します。 OPが述べたように、ランタイムのデバッグバージョンは配布できません。
どうしようか?
私が知っているオプションが1つあります。プロジェクトの[デバッグ構成]> [C/C++]> [コード生成]> [ランタイムライブラリ]に移動し、[マルチスレッドデバッグ(/ MTd)]を選択します。これにより、MSVCP120D.dllが実行可能ファイルに静的にリンクされます。
何かをすぐに起動したい場合は、クイック修正もあります。sys32(私のものはC:\ Windows\System32)フォルダーからMSVCP120D.DLLをコピーします。 MSVCR120D.DLLも必要になる場合があります。
クイックフィックスの補足:当て推量を減らすには、 dependency walker を使用できます。依存関係ウォーカーでアプリケーションを開くと、必要なdllファイルが表示されます。
たとえば、最近のアプリケーションはVisual Studio 2015(Windows 10 64ビットマシン)でビルドされ、32ビットWindows XPマシンをターゲットにしています。依存関係ウォーカーを使用して、私のアプリケーション (スクリーンショットを参照) は以下のファイルを必要とします:
ビルドしたopencv *ファイルとは別に、C:\ Windows\SysWow64(32ビットのSystem32)からシステムファイルをコピーする必要があります。
どういたしまして。 :-)
32ビットバージョンのmsvcr120d.dll
とmsvcp120d.dll
をダウンロードしてから、プロジェクトのDebug
フォルダーに入れました。うまくいきました。 (私のコンピューターは64ビットバージョンです)
私の問題は、リモートテストマシンに展開されたx64コンパイルにありました。 x64バージョンのmsvp120d.dllおよびmsvcr120d.dllを見つけました
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\Debug_NonRedist\x64\Microsoft.VC120.DebugCRT
VS 2015にOpenCV 2.4.11を実装すると、同じ問題が発生します。この問題を3つの方法で1つずつ解決しようとしましたただし、機能しませんでした:
最後に、この問題をインストール可能なすべてのオプションを選択してVS2015を再インストールするで解決しました。これには多くのスペースが必要ですが、実際に機能します。
Visual Studio Pro 2017でも同じ問題が発生しました。リリースモードではMSVCP120.dllファイルが、デバッグモードではMSVCP120d.dllファイルがありません。 Visual Studio 2013のVisual C++再頒布可能パッケージ および Visual C++ 2013およびVisual C++再頒布可能パッケージの更新 ここで提案されているようにインストールしました Microsoft回答 これは修正されましたリリースモード。デバッグモードで最終的に機能したのは、msvcp120d.dllとmsvcr120d.dllを別のコンピューター(Visual Studio 2013を使用)からC:\ Windows\System32にコピーすることでした。