2017-06-13 7 views
0

私はVisual Studio 2012でダイナミックライブラリを生成しました。別のマシンでそのライブラリを使いたいですが、リモートマシンにVisual Studioをインストールしたくありません。 私はmexライブラリとdllを持っており、両方のライブラリを使用するスクリプトを実行したい。スクリプトを実行すると、次のエラーが発生します。 "共有ライブラリが見つかりません:MSVCR110D.dll、MSVCP110D.dll" matlabにスクリプトファイルを実行するには、これらのdllのinorderをどこに配置する必要がありますか?Visual Studioがインストールされていない別のマシンでVisual Studioによって生成されたDLLを使用するには?

+0

[Matlab mex "Missing dependent shared libraries"](https://stackoverflow.com/questions/44315942/matlab-mex-missing-dependent-shared-libraries)の可能な複製 –

答えて

0

vs2012用に再頒布可能なMicrosoftをインストールする必要があります。また、ライブラリをリリースモードでコンパイルする必要があります。

+1

コアダンプを取得しない限りこの場合、デバッグモードは完全に合理的です。これは、あなたがしたくない船積みに関するものです。 – UKMonkey

4

MSVCR110D.dllおよびMSVCP110D.dllは、デバッグライブラリです。あなたのライブラリがそれを必要とする場合、それはあなたのライブラリがデバッグモードでビルドされ、その中にすべてのデバッグシンボルがあることを意味します。

アプリケーション/ライブラリにデバッグシンボルを含めて出荷しないでください!代わりに、リリースモードでアプリケーションをビルドする場合は、代わりに非デバッグバージョンに依存します。それらがWindowsに正常に付属していない場合は、必要なRedist Packをインストールする必要があります。

関連する問題