Visual Studio Community 2017でソリューションをビルドしようとしていますが、「インクルードファイルを開けません: 'stdio.h'」というエラーが引き続き表示されます。同様の質問をいくつか読みましたが、まだこの問題を解決できません。 stdio.hファイルはstdafx.hで呼び出されるように見えますファイル。以下に詳細を示します。助言がありますか? (まだ画像を埋め込むことができませんので、スクリーンショットのリンクをクリックしてください。)
システムの詳細:Windows 10
Visual Studio Community 2017 v.15.2(26430.6)
-C++でインストールされたデスクトップ開発( スクリーンショット:インストールリスト )
ステップ1:C++で有名なHello Worldプログラムを書きました。
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World!" << endl;
return 0;
}
ステップ2:Build> Build Solutionをクリックしました。
問題: 'stdio.h':そのようなファイルまたはディレクトリはありません。完全なエラー:
1>------ Build started: Project: HelloWorld, Configuration: Debug Win32 ------
1>stdafx.cpp
1>c:\users\dahiana mini\desktop\learncpp\helloworld\helloworld\stdafx.h(10):
fatal error C1083: Cannot open include file: 'stdio.h': No such file or directory
1>Done building project "HelloWorld.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
トラブルシューティングの詳細/試したこと:
Include Directories $(VC_IncludePath);$(WindowsSDK_IncludePath);
stdafx.cppファイルのコード:
// stdafx.cpp : source file that includes just the standard includes
// HelloWorld.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"
// TODO: reference any additional headers you need in STDAFX.H
// and not in this file
stdafx.hファイルのコード:
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
#pragma once
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
注:#include
と<stdio.h>
の<tchar.h>
の両方の下に赤い波線があり、「ソースファイルを開けません」と表示されます。
試行:最後の2行を削除しようとしましたが、さらにエラーが発生しました。
試した:多くの人がstdafx.hは必要ないと示唆したので、最初の行#include "stdafx.h"
だけを削除しようとしました。しかし、これが機能するためには、もう少しやらなければなりませんでした。 以下の回答を参照してください。
この問題を解決するには3つの方法があります。
#include "stdafx.h"
#include "stdafx.h"
Visual Studioを再インストールします
Windows SDKに何か問題がある可能性があることに気付いたので、これもうまくいきました。 Windows 10を使用していましたが、Windows SDK 8.1を使用していました。この問題も発生する可能性があります。
手順:Visual Studio Installerを開く> 3行のメニューバーをクリックする> [アンインストール]>コンピューターを再起動する> Visual Studio Installerを開く>必要なものをインストールしますが、複数のバージョンや8.1ではなく、最新のWindows SDK 10のみをインストールしてください。
Visual Studioを初めてインストールしたときに、Windows SDK 8.1をインストールする必要があることを示すエラーが表示されました。そのため、Visual Studio Installerの[変更]オプションを使用しました。おそらくこれは、Visual Studioを既にインストールした後にインストールしたか、代わりにSDK 10が必要だったために問題だったのでしょう。念のため、完全な再インストールを行いました。
VS2013からVS2017へのプロジェクトの移植で同じ問題が発生しました。
修正:「プロパティ->一般-> Windows SDKバージョン」を10に変更
新しいコンピューターにVS2017コミュニティをインストールし、VS2013からVS2017にソリューションを移行した後、stdlib.h
およびstdio.h
(およびそれ以上)が見つからないという問題に直面しました。
@ Maxim Akristiniy の提案を使用しましたが、ツールセットの互換性に関するエラーメッセージが表示されました。ただし、VS自体は、Solution Explorerでソリューションを右クリックして、メニューからRetarget solution
を選択し、更新されたWindows SDK Version
ドロップダウンリストから。
現在、私のプロジェクトは問題なくビルドされています。
リターゲティングをキャッチするには、プロジェクトをスタートアッププロジェクトにする必要がある場合があることに注意してください。
Windows SDKをWindows 10に上げたくない場合(たとえば、意思決定があなたのものではないオープンソースプロジェクトで作業している場合など)、Windows SDK 8.1プロジェクトでこの問題を解決できます。 Tools -> Get Tools and Features... -> Individual Compontents tab
をナビゲートし、個々のコンポーネント「Windows 8.1 SDK」(SDK、ライブラリおよびフレームワークの下)および「Windows Universal CRT SDK」(コンパイラ、ビルドツールおよびランタイムの下)をインストールします。
VS2017を更新した後、同様の問題が発生しました。プロジェクトは正常に構築されました。しかし、エディターでコードが呼び出されたときに多くの「エラー」が発生しました。 VSの再インストールも試みました。 [標準のインクルードパスを無視する]オプションを[はい]に設定することで解決できました。多くのエラーでソリューションを構築しようとしました。戻ってオプションを「いいえ」に設定しました。再構築後、私の問題はなくなりました。
汚い修正:追加$(VC_IncludePath); $(WindowsSDK_IncludePath);プロジェクトのプロパティへ/ C/C++ /一般/追加のインクルードディレクトリ
シナリオ:
Windows 1 with Visual Studio 2017(フレッシュインストール)。
'C' project(ERROR like-> オープンソースは不可file: 'stdio.h'、 'windows.h'など)。
解決:
「Visual Studio Installer」を実行します。
「変更」ボタンをクリックします。
「C++によるデスクトップ開発」を選択します。
「インストールの詳細」(通常は右側のサイドバー)から次を選択します。
4.1。 Windows 10 SDK(10.0.17134.0)。
「変更」ボタンをクリックして、変更を適用します。
同じ問題に直面して、別の解決策はデフォルトのインクルードを追加することです、これは私のために問題を修正しました:
$(IncludePath);
私にとっては同様の問題ですが、少し異なります。デフォルトのCUDA 10コードをコンパイルして問題なく実行できますが、編集ウィンドウに表示されるstdio.hファイルに関連する多くのエラーがあります。迷惑です。コードファイル名を「kernel.cu」から「kernel.cpp」に変更して解決します。それは有線ですが、私のために動作します。そして、これまでのところうまくいきます。