我正在一棵树上工作,在我扔掉它的任何Unix机器上编译都很好,但Cygwin很难,我不确定从哪里开始。我有以下目录结构:
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.
我知道它发现其他库(eigen
和rapidxml
)很好,因为如果我删除相应的包含标志,它会抛出错误,说它无法找到eigen
或你有什么。
有问题的包含声明是:
// snip
#include <Eigen/StdVector>
#include <cmath>
#include <iostream>
#include <fstream>
#include <tclap/CmdLine.h>
// snip
想法?谢谢!
答案 0 :(得分:1)
您指定-Iinclude/tclap
,然后包含tclap/CmdLine.h
,因此编译器会寻找include/tclap/tclap/CmdLine.h
。
使用-Iinclude
,或在没有路径的情况下包含CmdLine.h
。
答案 1 :(得分:1)
使用-Iinclude
是否有效?您可能不需要显式添加include
的子目录,因为您在#include
语句中的名称中引用它们。