2011-09-21 86 views
0

我在一个树上工作,它在任何我把它扔到的Unix机器上编译得很好,但是Cygwin很困难,我不确定从哪里开始。我有以下目录结构:用cygwin编译C++不提供包含路径

buildwin/ 
|-- main.cpp 
|-- other project files 
|-- include/ 
    |-- tclap 
     |-- CmdLine.h 
     |-- other files (including CmdLine.cpp) 
    |-- eigen 
     |-- (appropriate files) 
    |-- rapidxml 
     |-- (appropriate files) 

当我尝试编译此,我从G ++得到以下错误:

$ g++ main.cpp -lglut32 -lglu32 -lopengl32 -Iinclude/eigen -Iinclude/rapidxml -Iinclude/tclap 
main.cpp:6:27: fatal error: tclap/CmdLine.h: No such file or directory 
compilation terminated. 

我知道这是寻找其他图书馆(eigenrapidxml)的罚款,因为如果我删除相应的包含标志,它会抛出一个错误,说它找不到eigen或你有什么。

的包括有问题的说法是:

// snip 
#include <Eigen/StdVector> 
#include <cmath> 
#include <iostream> 
#include <fstream> 

#include <tclap/CmdLine.h> 
// snip 

想法?谢谢!

回答

1

您指定的是-Iinclude/tclap,然后包含tclap/CmdLine.h,因此编译器会寻找include/tclap/tclap/CmdLine.h

要么使用-Iinclude,要么包含CmdLine.h而没有路径。

+0

就是这样!我最初单独添加它们是因为'eigen /'和'rapidxml /'目录的结构需要它(本征库的实际根目录在'include/eigen/eigen'处)。不过,包括include/eigen,include/rapidxml和include都起作用。谢谢! –

1

是否使用-Iinclude工作?您可能不需要明确添加include的子字符串,因为您在#include语句中的名称中引用它们。

+0

就是这样! Upvoted,但另一个评论击败你一分钟。谢谢! –