2015-10-07 26 views
36

私はC++で初めてのプログラムを開発しました。私は友人の一人と一緒にそれを見せたかったのです。悲しいことに、彼がexeファイルを開こうとすると、「MSVCP140.dllがありません」というエラーが表示されます。なぜこの問題が起きているのですか?どうすれば解決できますか?MSVCP140.dllがありません

答えて

53

どちらかあなたの友人が(ケイの答え@)ランタイムDLLをダウンロード、または静的なリンクでアプリをコンパイル行います。

ビジュアルスタジオでは、ランタイムライブラリで​​にアクセスし、デバッグモードでは/MTd、リリースモードでは/MTを選択します。

これにより、コンパイラはランタイムをアプリケーションに埋め込みます。実行ファイルはかなり大きくなりますが、ランタイムDLLを必要とせずに実行されます。

+0

"hello world.exe"の動的および静的リンクの大きさを数値で追加できますか? – kay

+3

@Kay静的リンクには通常、必要なものだけが含まれています。ライブラリ内のすべてではありません。実行可能ファイルのサイズの増加は、Cランタイムの使用量に基づいて行われます。 – Andy

+0

実際には、ランタイムライブラリのデバッグを除いて、ランタイムのデバッグバージョンとリンクする必要はありません。 – user1810087

-1

おそらくC++ランタイムライブラリです。 DLLなので、実行可能プログラムには含まれていません。あなたの友人は、Microsoftからそれらのライブラリをダウンロードできます。

+1

申し訳ございませんが、-1。 * "これはおそらく間違っていて、あなたの友人は何とかこれを解決することができます" *は答えではありません。さらに、CRTは単なるDLLではありません。 – IInspectable

52

友人のPCは、あなたのプログラムの実行時サポートのDLLが欠落しています。

+1

これは、アプリケーションが使用するアプリケーションのすべてがOSに組み込まれているわけではないため、アプリケーションがその展開/設定の一部として争わなければならないことの1つです。 [ネイティブデスクトップアプリケーションの展開(Visual C++)](https://msdn.microsoft.com/en-us/library/zebw5zk9.aspx)を参照してください。アプリケーションがWindowsストアアプリケーションであった場合、StoreはVisual C++ CRTのデプロイを行います。 –

+0

完全なVisual Studio 2015がインストールされていても、私のPCで同じエラーが発生しています。再頒布可能なインストーラは、新しいバージョンが既にインストールされていると言って終了します。何かご意見は? – matth

2

通常、あなたの友人は、ビジュアルC++用のMicrosoft再配布を持っていないことを意味します。私はもちろん、あなたがVC++を使い、MingWや他のコンパイラを使っていないと仮定しています。あなたの友人にはVSもインストールされていないので、彼にredistがインストールされているという保証はありません。

VC++ Distro

関連する問題