web-dev-qa-db-ja.com

VS2015 clコマンドラインでビルドするときにCRTライブラリ(stdio.h、ctype.hなど)が見つかりません

  • 最新のVS2015 Professionalバージョンをインストールしました。
  • Visual Studioコマンドプロンプトを開き、vcvars32.batを実行しました
  • 簡単なhelloworld.cppプログラムを作成しました(stdio.hを含み、「hello world」を出力します)
  • 試したcl helloworld.cpp

次のエラーが表示されます。

c:\test>cl helloworld.cpp
Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23026 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.

helloworld.cpp
helloworld.cpp(1): fatal error C1083: Cannot open include file: 'stdio.h': No such file or directory

Vcvars32.batによって設定されるインクルードパスは次のとおりです。

INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE;C:\Program Files (x86)\Windows Kits\10\include\wdf\ucrt;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6\include\um;C:\Program Files (x86)\Windows Kits\10\include\wdf\shared;C:\Program Files (x86)\Windows Kits\10\include\wdf\um;C:\Program Files (x86)\Windows Kits\10\include\wdf\winrt;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE;C:\Program Files (x86)\Windows Kits\10\include\wdf\ucrt;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6\include\um;C:\Program Files (x86)\Windows Kits\10\include\wdf\shared;C:\Program Files (x86)\Windows Kits\10\include\wdf\um;C:\Program Files (x86)\Windows Kits\10\include\wdf\winrt;

環境変数のパスは、「C:\ Program Files(x86)\ Windows Kits\10\include\wdf\winrt; "など。ただし、ファイルの実際の場所はC:\ Program Files(x86)\ Windows Kits\10\include\-10.0.10240.\winrt;

ここで何か間違ったことをしていますか?どんな助けも大歓迎です。

p.s。私の本当の目的は、boost 1.58ライブラリをビルドすることです(ただし、上記と同じ問題に悩まされているため、最初に問題を切り分けたいと考えていました)。

p.p.s。次の環境変数に気付きました。しかし、それらを変更することはできません。

WindowsSDKLibVersion=wdf\
WindowsSDKVersion=wdf\
17
Nilay Kothari

WDK(Windows Driver Kit-10.0.26639)がインストールされている場合、インクルードパスがWDKによって上書きされるため、この問題が発生します。これを機能させるには、WDKをアンインストールする必要があります。

Microsoft Connectの問題を見てください- https://connect.Microsoft.com/VisualStudio/feedback/details/1610302/universalcrt-detection-breaks-when-windows-driver-kit-is-installed =

15
AhmedBM

Windows SDK 8.1に対してVC++プロジェクトをビルドすると、VS2017(15.5.5)で同様の問題が発生しました。

C1083インクルードファイルを開けません: 'assert.h':そのようなファイルまたはディレクトリはありません

Windows 8.1 SDK and UCRT SDK VSインストーラーで問題を解決しました。 Windows 8.1 SDK and UCRT SDK

4
zwcloud

私の場合、これらのパスを追加のインクルードパスに追加しました。

C:\ Program Files(x86)\ Microsoft Visual Studio 14.0\VC\include; C:\ Program Files(x86)\ Microsoft Visual Studio 14.0\VC\atlmfc\include; C:\ Program Files(x86)\ Windows Kits\10\Include\10.0.10586.0\ucrt; C:\ Program Files(x86)\ Windows Kits\NETFXSDK\4.6\Include\um; C:\ Program Files(x86)\ Windows Kits\10\Include\10.0.10586.0 \共有; C:\ Program Files(x86)\ Windows Kits\10\Include\10.0.10586.0\um; C:\ Program Files(x86)\ Windows Kits\10\Include\10.0.10586.0\winrt; $(IncludePath)

これらのパスを追加のlibパスに追加しました。

C:\ Program Files(x86)\ Windows Kits\10\Lib\10.0.10586.0\um\x86; C:\ Program Files(x86)\ Windows Kits\10\Lib\10.0.10586.0\ucrt\x86; $( LibraryPath)

4
전송현