2017-04-25 17 views
1

次の問題:CygwinまたはVisual Studioでエラーが発生します。cygwin:ヘッダファイルが見つかりません

CGAL/Splitters.h: No such file or directory 

このエラーはすべてのヘッダーに表示されます。 Iため、

#include <c:/path1/path2/CGAL/Splitters.h> 

しかし、これは私を満足する解決策ではない:ヘッダはIコードを変更した場合、エラーが、私は全体のパスを記述するように、消失コード

#include <CGAL/Splitters.h> 

によって実現されますそのようなコード部分を何百も変更する必要があります。 Visual studioやcygwinの問題だと思います。 cygwinで私はコマンドを書いた:

$ g++ -std=c++11 example.cpp -o example 

エラーの理由は何ですか?どうすれば修正できますか? 私はC++の初心者ですので、わかりやすい説明をお願いします。

+0

あなたのビジュアルスタジオのバージョンは何ですか? –

+0

Visual Studio 2017 Community –

答えて

1

そのヘッダファイルは、ヘッダファイルのコンパイラの デフォルトの検索ディレクトリのいずれかに配置されていないため、コンパイラは 、どこでそれを指示しない限り#include <CGAL/Splitters.h>によって参照されるヘッダファイル を検索する場所を知っていません。

$ g++ -I/path/to/cgal/headers -std=c++11 example.cpp -o example 

そのヘッダファイルは次のようになります:

あなたはどこに-Iオプションを渡すことで見えるようにコンパイラに伝える

/path/to/cgal/headers/CGAL/Splitters.h 

さらに読書:An Introduction to GCC - for the GNU compilers gcc and g++

その後

したがって、すべてのヘッダーファイルに対して、 - Iオプションを記述する必要がありますか?それ自体で

-I/path/to/cgal/headers/はもちろん、あなたのプログラムで使用すべての CGALのヘッダファイルを見つけるために、コンパイラ を教えてくれます。

+0

したがって、すべてのヘッダーファイルに対して、 - Iオプションを記述する必要がありますか?これはたくさんの仕事です!簡単な方法はありませんか? –

+0

@DanielBernoulli:いいえ、すべてのヘッダーファイルではありません。しかし、すべての図書館のためかもしれません。簡単な方法は、システムのデフォルトのインクルードパスに適切にインストールすることです。この「CGAL」のドキュメントを読んでください。 –

1

あなたはのVisual Studioにパスを含める確認することができます。

ツール]> [オプション]> [プロジェクトおよびソリューションは> VC++ディレクトリ>は、デフォルトのヘッダファイルのパスを確認し、だから、ファイル

を含めます。

こちらがお役に立てば幸いです。

関連する問題