web-dev-qa-db-ja.com

corecrt.hが見つかりません:$(UniversalCRT_IncludePath)が間違っています

Windows 10で動作するラップトップにVisual Studio 2015をインストールしました。

同じバージョンのVisual Studio(update 3)で作成されたソリューションで、常にWindows 10を使用して、別のPCでリポジトリを複製しました。

ラップトップでソリューションを構築しようとすると、次のエラーが表示されます。

c:\program files (x86)\Microsoft visual studio 14.0\vc\include\crtdefs.h(10): fatal error C1083: Cannot open include file: 'corecrt.h': No such file or directory

このページ では、インクルードパスに$(UniversalCRT_IncludePath)を追加する必要があることを読みましたが、この場合でも同じエラーが発生します。

確認したところ、$(UniversalCRT_IncludePath)は次のパスを参照しています。

C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt

私のラップトップにはこのパスがありません。代わりに私はこれを持っています:

C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt

そのため、ウィンドウのバージョンが異なるようです。おそらくこれは本当です。私のラップトップには1511ウィンドウのアップグレードをインストールしなかったのに対し、他のPCにはすべて正しくインストールされているからです。

私の質問は、パスで混乱することなく、両方のPCでcorecrt.hファイルを参照する方法です。これらのパスはpcに依存するため、これらのパスをハードリンクしないようにしたいと思います。また、システムに依存する必要があり、ソリューションにケーブル接続しないことを考慮して、ラップトップでパスが間違っている理由がわかりません。

この問題を解決するにはどうすればよいですか?私はラップトップを同じWindowsバージョンに更新できることを知っていますが、多くの理由でそれを避けたいです。

-編集

私はこの道があることに気づきました:

C:\Program Files (x86)\Windows Kits\8.1\Include\10.0.10240.0\ucrt

同じ10.0.10240.0バージョンを持っていますが、別のWindowsキットバージョンに関連しているため、この場合には何らかの問題があるかもしれません。私のラップトップでもVisual Studio 2013を使用しているので、おそらくそこから来たのかもしれませんが、Visual Studio 2013で別のプロジェクトを維持しているため、削除できません。

おそらくVisual Studio 2015フォルダーで、.batファイル(vcvarsall.batまたはsimiliar)で$(UniversalCRT_IncludePath)を明示的に設定できますが、どのファイルでどの位置にあるのかわかりません。

53
Jepessen

Visual Studio 2017の場合:

  1. Visual Studio Installerを実行します。
  2. [変更]ボタンを選択します。
  3. 「個別コンポーネント」タブに移動します。
  4. 「コンパイラ、ビルドツール、ランタイム」までスクロールダウンします。
  5. 「Windows Universal CRT SDK」にチェックマークを付けます。
  6. インストール。
105
parsley72

おそらくすでにこれを修正していますが、誰か他の人が来たら、ヒント here に従って解決しました。

基本的に、次のシステム環境変数を設定します。

INCLUDE="C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt"
LIB="C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\x64"

おそらくベストプラクティスの方がはるかに優れた方法がありますが、それを超高速で修正するだけでうまくいきました。

24
Helge S

同じ問題がありました。ここで答えを試しました。 100%うまくいきませんでした。私が見つけたのは、2017 Community Edition(現在使用している)にはVC++ 2015ツールセット(x86、x64)が必要ですが、includeリンクまたはlibリンクを追加しないことです。

宜しくお願いします。

6
user7869952

プロジェクトのプロパティを確認してみてください(メニュープロジェクト>プロパティ)。 [構成プロパティ]> [全般]で、[プラットフォームツールセットおよびWindows SDKバージョン(プラットフォームツールセット> VS2015を使用している場合)]を確認します。

5
dvidben

Visual Studioのインストール中に何かが足りなかったのかもしれません。 VC++ツールセットの選択を忘れたかどうかを確認できます。

  1. Control Panel-> All Control Panel Items-> Programs and Features-> Visual studio 2015
  2. change/uninstallをクリックします
  3. VC++2015 toolset(x86,x64)を選択してインストールします。

Visual Studio Community 2017 RC(15.0.26206.0)の場合、オプションツールの名前はVC++ 2017 v141 toolset(x86,x64)です:

`VC++ 2017 v141 toolset(x86,x64)

5
simondoo

Visual Studio 2015 Enterpriseの場合、parsley72と同様の方法で問題を解決しました。

1. Run the Visual Studio Installer;
2. Select Modify button;
3. Go to "Windows and Web Development";
4. Tick "Universal Windows App Development Tools";
5. Install.
1
JackOLantern

WindowsでPyTorchをコンパイルし、Windows Universal CRT SDKをインストールしても解決しないときに、このエラーが発生しました。いじくり回した後、2つの原因があるようです。

  1. Vcvarsall.batを実行してください。 VS2017 x64 Native Command Promptを起動すると、このbatファイルが実行されます。
  2. Vcvars_verをマシン上の正しいバージョンに設定します。使用しているバージョンを見つけるには、%PROGRAMFILES(X86)%\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\にアクセスしてください。このフォルダー内には、14.13.26128などのフォルダーがあります。したがって、vcvars_verを14.13に設定します。

バッチファイルの以下のフラグメントは、上記の2つのステップを示しています。

set "VS150COMNTOOLS=%PROGRAMFILES(X86)%\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build"
call "%VS150COMNTOOLS%\vcvarsall.bat" x64 -vcvars_ver=14.13
1
Shital Shah

エラーの原因は、Windows 10 SDKの更新バージョンがないためかもしれません

windows 10 SDKを自律的にダウンロードしてインストールすることもできます。

このリンクを使用して windows 10 sdk を使用し、システムパスに追加します

それが役に立てば幸い。

1
Khan

プロジェクトで選択したWindows SDKはインストールされません

Visual Studio project setting windows SDK version 8.1

必要なSDKをインストールするか、インストール済みのSDKのいずれかを選択します(注:<親から継承>オプションを選択すると、デフォルトは8.1、VS 2017+ではデフォルトでインストールされません

Windows SDKをインストールするには、インストーラーを実行してIndividual componentsに移動し、一番下までスクロールします:

Visual Studio installer - individual components - windows 8.1 SDK

1
rustyx

私にとっては、Visual Studioのこの設定に役立ちます。

  • プロジェクトのプロパティ-> VC++ディレクトリ->ディレクトリを含める->編集用に開きます。
  • 親またはプロジェクトのデフォルトから継承するチェックボックスをオンにします
1
Libor B.

VC++の経験はありませんが、pythonプロジェクトのta-libをビルドする必要があります。私はVC St​​udioには触れたくないのですが、Unixでの通常のCプログラミングの経験があるため、Makefileに直接インクルードパスを追加するアプローチをとりました。例えば。:

INCPATH = -I "..........\include" -I "..........\src\ta_common" -I "..........\src\ta_abstract "-I" ..........\src\ta_abstract\tables "-I" ..........\src\ta_abstract\frames "-I "C:\ Program Files(x86)\ Windows Kits\10\Include\10.0.10150.0\ucrt" -I "C:\ Program Files(x86)\ Microsoft Visual Studio 14.0\VC\include"

サブディレクトリの下に複数のMakefileがあるので、それぞれに変更を加える必要がありましたが、私にとっては問題なく動作します。

0
hwase0ng

古いWindows SDK(例:バージョン8.1 /ユニバーサル)をマシンに追加する(parsley72で説明)、または プロジェクトを再ターゲットして、コンピューターにインストールされているWindows SDKのいずれかを使用する

私はVS2017でこれに遭遇し、リターゲティングが機能しました。 Windows SDKの新しいバージョンをターゲットにすると悪影響があるかどうか の答えを待っています。

0
codesniffer

Windows 10 SDKを再インストールします。WindowsSDKが見つからない場合、またはその内容が変更された場合、このエラーがポップアップします。

0
Mahdi Khalili

次の3つのステップでこのエラーを解決します。

1)すべてのファイル:

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\um\x86
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\ucrt\x86

コピー先:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\VS\lib\x86

2)からのすべてのファイル:

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\um\x64
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\ucrt\x64

コピー先:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\VS\lib\x64

3)すべてのファイル:

C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt

コピー先:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\VS\include

その後、プロジェクトを再構築し、すべて正常に動作します

0