2017-04-25 158 views
1

以下问题:Cygwin或Visual Studio出错。cygwin:找不到头文件

CGAL/Splitters.h: No such file or directory 

每个标题都会出现此错误!头是由代码实现

#include <CGAL/Splitters.h> 

错误消失,如果我改变了代码,这样我写全路径:

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

但是,这是没有办法满足我,因为我将不得不改变数百个这样的代码分数。 我认为这应该是Visual Studio或Cygwin的问题。在cygwin中我写了这个命令:

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

这个错误的原因是什么?我该如何解决它? 请给予容易理解的说明,因为我是C++的初学者。

+0

什么是您的visual studio版本? –

+0

Visual Studio 2017社区 –

回答

1

编译器不知道去哪里找,除非你告诉它, 因为头文件未在任何编译器的默认 搜索目录下的位于头文件通过#include <CGAL/Splitters.h>提到的头文件 。

你告诉编译器通过传递一个-I选项来看看:

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

哪里是头文件将是:

/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++目录>包含文件

所以,检查缺省头文件路径。

我希望这可以帮助你。