私は現在、2つのヘッダーファイルを含む単純なプログラムをコンパイルしようとしています。ソリューションエクスプローラーに表示され、「既存のファイルを含める」で含めました。ただし、プログラムを実行すると、次のエラーが発生します。致命的なエラーC1083:インクルードファイルを開くことができません: 'FileWrite.h':そのようなファイルまたはディレクトリはありません。問題は、ヘッダーのフォルダーと私が書いたコードにファイルが含まれていることです。
#include "FileWrite.h"
その後、残りのプログラムコード。コンパイラがヘッダーファイルを確認し、コンパイルしようとしている.cppファイルにリンクできるようにするために他に必要なことはありますか?
#include "FileWrite.h"
のようなコードを書く場合は、コンパイラがそのファイルを見つけられることを確認する必要があります。 3つのオプションがあります。
これらのオプションシェルのどちらを使用するかは、そのヘッダーがこのプロジェクト(1番目のオプション)または他のプロジェクト(他の2つのオプションのいずれか)のどちらに由来するかによって異なります。
これを行うには2つの方法があります。
1)現在のプロジェクトのみ
Select your project -> properties -> C/C++ -> General -> Additional Include Directories -
Include your header file directory.
2)すべてのプロジェクト
Tools -> Options -> VC++ Directories -> Include files - Add the header file directory.
プロジェクトを自分のシステムとは異なるシステムでコンパイルする場合、プロジェクトの依存関係を把握するのは難しいため、2の使用は控えてください。
ファイルを含める場合、コンパイラは最初に現在のディレクトリ(ソース.cpp
ファイルを含むディレクトリ)を検索し、次に追加のインクルードディレクトリを検索します。 FileWrite.h
がソースファイルと同じディレクトリにない場合は、追加の含まれているディレクトリを確認してください。
プロジェクトのプロパティページで、追加のインクルードディレクトリを確認し、FileWrite.h
が含まれているフォルダが含まれているかどうかを確認します。
ファイルは「headers」フォルダにあるとおっしゃいました。これは、ヘッダーfilterまたはファイルシステム上の実際のヘッダーディレクトリを意味する可能性があります。独自のプロジェクトのファイルを含める場合は、含めるファイルからのパスを指定する必要があります。だから、あなたがそのようなものを持っていた場合:
src/main.cpp
include/my_object.h
Main.cppで#include "../include/my_object.h"
を使用します。
それはディレクトリ用です。プロジェクトに表示されるフォルダはfiltersと呼ばれ、強制しない限り、プロジェクトのディレクトリ構造とはまったく関係がありません。 includeステートメントで使用するパスを確認するには、Windowsエクスプローラーで構造がどのように表示されるかに注意を払う必要があります。