5

オープンソースのC++アプリケーションであるFrhedをダウンロードしてコンパイルしました。C++実行可能ファイル - MSVCR100.dllが見つかりませんでした。エラー

私がコンパイルしたバージョンを実行すると、MSVCR100といくつかの他のdllファイル(Visual C++再配布可能ファイルの一部)が必要です。ただし、元のプリコンパイル済みFrhed実行可能ファイルを実行すると、C++再配布可能パッケージがインストールされずに実行されます。

C++再配布可能ライブラリからプログラムをリンク解除するには、コンパイルオプションを変更する必要がありますか?

答えて

13

元のプログラムは、おそらくを静的にあなたが動的に小さなファイルになり、あなたの実行可能ファイルを、リンクしようとしているのに対し、をリンクされますが、MSVCR100.dll内部の機能への依存性(マイクロソフトCランタイムライブラリのV10)、希望されます静的にリンクしている場合は実行可能ファイルの中に含まれています。

DLLを静的にリンクするには、プロジェクトのプロパティに移動し、ビルドモードをMDからMTに変更します。 Visual Studio 2010/2012では、そのプロジェクトプロパティはC/C++ - >コード生成 - >ランタイムライブラリです。

7

短い答えははいですが、長い答えは、よく、長くなります。

ライブラリmsvcr100.dllあなたはおそらく/ MDコンパイルオプションを使用して、要求されたDLL implementation of the C run-time10.0バージョン(つまり、Visual Studioの2010年版)です。動的にリンクされた実行時バージョンを使用しないようにするには、代わりに/ MTオプションを使用し、実行時に静的にリンクすることができます。

または、プログラムと一緒にredistribute msvcr100.dll (and other files)とすることもできます。

関連する問題