web-dev-qa-db-ja.com

Visual Studioでインクルードファイルを開けません

最近、 Code :: Blocks からVisual Studioに移行しました。Code:: Blocksでは、クラスを追加してすぐに含めることができます。ただし、Visual Studioで次のステートメントを使用して同じ操作を行うたびに:

#include "includedFile.h"

または

#include "include/includedFile.h"

それは機能せず、代わりにエラーが発生します:

インクルードファイルを開けません: 'includedFile.h';そのようなファイル、又はディレクトリはありません。

チェックする必要があるボックスまたは設定はありますか?または、各ヘッダーを依存関係として手動で追加する必要がありますか?

問題のクラスのコードは次のとおりです。

Public.h:

    #pragma once
    class Public
    {
        public:
            static const int SCREEN_WIDTH=1000;
            static const int SCREEN_HEIGHT=1250;
            Public(void);
            ~Public(void);
    };

Public.cpp:

    #include "Public.h"


    Public::Public(void)
    {
    }


    Public::~Public(void)
    {
    }

含まれる方法:

    #include "Public.h"
19
user2853108

私は、gccからCプログラミング用のビジュアルスタジオに行くこの同じ問題を抱えていました。 インクルードファイルが実際にディレクトリにあることを確認してください-VSプロジェクトツリーに表示されるだけではありません。他の言語では、プロジェクトツリーのフォルダーにコピーすると、実際にファイルが移動します。VisualStudio 2010では、「ヘッダーファイル」に貼り付けても.hファイルがそこに置かれませんでした。

インクルードファイルの存在については、実際のディレクトリを確認してください。プロジェクト/ソリューションエクスプローラーの「ヘッダーファイル」フォルダーに入れるだけでは不十分です。

31
Yablargo

プロジェクトのプロパティ([プロジェクト]-> [プロパティ]-> [構成プロパティ]-> [C/C++]-> [全般])に移動し、[追加インクルードディレクトリ]フィールドで.hファイルへのパスを追加します。

また、構成とプラットフォームがアクティブであることを確認してください。例:構成:アクティブ(デバッグ)プラットフォーム:アクティブ(Win32)。

21
Radu Ruse

これらのインクルードファイルがプロジェクトフォルダーにない場合、これらのインクルードファイルを検索するには、プリプロセッサーのパスを設定する必要があります。

パスは VC++ Directories 、または Additional Include Directories で設定できます。両方ともプロジェクト設定にあります。

17
Chris Olsen

既定では、Visual Studioは、プロジェクトがあるフォルダー($ ProjectDir)および既定の標準ライブラリディレクトリでヘッダーを検索します。プロジェクトディレクトリにないものを含める必要がある場合は、含めるフォルダーへのパスを追加する必要があります。

プロジェクトのプロパティ([プロジェクト]-> [プロパティ]-> [構成プロパティ]-> [C/C++]-> [一般])に移動し、フィールドAdditional Include Directoriesパスを.hファイルに追加します。

また、Chris Olenが提案したように、VC++ディレクトリフィールドへのパスを追加することもできます。

15
tomi.lee.jones

Microsoft Visual C++でも同じエラーが発生していたため、この投稿を見つけました。 (原因は上記の質問とは少し違っていたようですが)

ファイルを同じディレクトリに入れようとしていましたが、それでも見つかりませんでした。

私のインクルードは次のようになりました:#include <ftdi.h>

しかし、これに変更したとき:#include "ftdi.h"それからそれを見つけた。

6
Joe

他の回答を試してもインクルードファイルが見つからない場合、追加のデバッグ手順と健全性チェックを次に示します。

  • コードでサポートされているプラ​​ットフォームにビルドしていることを確認してください。 (そうでない場合は、このプラットフォームをターゲットとして削除することを検討してください)
  • ファイル名/パスが正しいことを確認してください。ソースコードを#includeに変更して、代わりにヘッダーファイルの絶対パス全体を指定し、ファイルがすぐに見つかるかどうかを確認します。そうでない場合は、ソースコードからコマンドラインにパスをコピーアンドペーストして、ファイルがタイプミスなしでそのフルパスに存在することを検証します。ヘッダーファイルを開いて、読み取りアクセス権があることを確認します。 (完了したら、ソースコードを元に戻します。)
  • 既にAdditional Include Directoriesへのパスを追加している場合は、Additional Include Directoriesのドロップダウンコンボボックスをクリックして、<Edit...>を選択してください。これにより、evaluated valuesパスが表示されます。 (正しい評価値が表示されない場合、パス内の変数が設定されていない可能性があります。Macros>>をクリックして変数を表示します。).
  • 新しい空のC++「Windowsコンソールアプリケーション」プロジェクトを作成します。インクルードディレクトリを1つだけ設定し、main.cppに1つのファイルだけをインクルードして、ビルドされるかどうかを確認します。
0
cowlinator

この質問に対する私の答えであることが判明した奇妙な解決策があります(正直なところ、完全に理解していません)。

「追加インクルードディレクトリ」のファイルにパスをリンクする代わりに、プロパティ-> C++->一般ウィンドウで。 「。」を入れる「親またはプロジェクトのデフォルトから継承」のチェックを外します。

お役に立てれば。

0
mkohler

それでも問題が解決しない場合は、現在の設定とは異なるバージョンをコンパイルしようとしているためです。

たとえば、Debug x64で_Additional Include Directories_を設定する場合は、同じ構成でコンパイルしていることを確認してください。

これを確認してください:_Build > Configuration Manager... >_アクティブなソリューション構成にはおそらくDebug x86 (Win32) platformのようなものがあります。

0
Patapoom