これは、this question (MSVCP140.dll missing)に多少追加されています。外部ランタイムDLLを必要とせずにVS内のプログラムをコンパイル
私はWindowsマシン用のプログラムをコンパイルしようとしています。ここで注目すべき大きなものは、ソフトウェアをインストールする権限がないことですが、実行可能ファイルを実行する可能性があります。
問題のWindowsマシンで実行するたびに、MSVCP140.dllの問題が見つかりません。私はthe solution of the question I have linked(これは静的なリンクです)に従いましたが、何か非常に奇妙な理由で私はまだ同じエラーが発生していたときに同僚のコンピュータで動作するようにプログラムを有効にしていてもエラーを受けています。
これ以上のことができれば、プログラムを(完全な移植性がないため)完全に移植可能にすることはできますか?ライブラリで実行可能ファイルを完全にコンパイルするために、VSで変更する必要があるその他の設定はありますか?
私はさらに、コンパイルのために/ MTオプションを使用して静的リンクを使用する解決策を見ており、まだ.dllの問題が見つからないということを強調します。
私の実行ファイルの横にMSVCP140.dllをコピーしようとしましたが、問題は解決しましたが、もう1つの.dllがありません。プログラムが動作するまで.dllを増分的に追加できません。それが唯一の解決策であれば、すべての.dllをプログラムにバンドルすることができてうれしく思いますが、私はsystem32フォルダ全体を絶望からコピーする必要がないので、どのプログラムが必要かを知りたいと思います。
まず、あなたのアプリケーションを知っている必要があります。その依存関係を知っている必要があります。LoadLibrary()でロードされていない依存関係が見つからない、または気付かないことがあります。つまり、DependencyWalkerという小さなツールを使って依存関係を調べることができます。また、すべてのC++ RT DLLを静的にリンクしている場合は、すべての単一マシンで実際に動作するはずですので、そこに不足しているものがあるはずです... –
@AdrianoRepetti私を信じて、なぜ静的リンクが働いていない。 – ZoSal
MSVCP140に依存する他の(デプロイされた)DLLに依存していますか? –