2017-09-06 82 views
0

这些都是头文件和库编译错误:致命错误:“升压/数字/ uBLAS库/ matrix.hpp”找不到文件

#include <iostream> 
#include <algorithm> 
#include <stdio.h> 
#include <math.h> 
#include <vector> 
#include <numeric> 
#include <strings.h> 
#include <assert.h> 

#include <dirent.h> 


#include <boost/numeric/ublas/matrix.hpp> 
#include <boost/numeric/ublas/io.hpp> 

#include <boost/geometry.hpp> 
#include <boost/geometry/geometries/point_xy.hpp> 
#include <boost/geometry/geometries/polygon.hpp> 
#include <boost/geometry/geometries/adapted/c_array.hpp> 


#include "mail.h" 

我试图编译这个C++我得到了使用

文件
g++ -O3 -DNDEBUG -o evaluate_object evaluate_object.cpp 

的编译输出

evaluate_object.cpp:13:10: fatal error: 'boost/numeric/ublas/matrix.hpp' file 
     not found 
#include <boost/numeric/ublas/matrix.hpp> 
     ^
1 error generated. 

PS:我在MacOS上运行塞拉利昂10.12 我试图用t安装升压HESE方式:

  • sudo的港口安装升压
  • 酿造安装升压
  • sudo的港口安装升压+通用

但我仍然有同样的问题。 我很乐意摆脱这个noob区域。 我也是macos新手。

回答

0

看来你的“提升”包括目录不存在于环境定义的包含目录中。您可能希望通过传递“-I”的说法到g ++命令来指定一个,即

g++ -O3 -DNDEBUG -I/usr/local/Cellar/blahblah -o evaluate_object evaluate_object.cpp

而且你的代码是不完整的,或者如果你真的拨打了一些提升功能,您可能需要添加一些对象联系起来然后你将面对“未定义的参考”错误。为了克服这种情况,你需要为你的g ++命令指定“-L”标志。

+0

我不太明白-l标志的作用,但我试着运行你的建议命令。 g ++ -O3 -DNDEBUG -l/usr/local/Cellar/boost -o evaluate_object evaluate_object.cpp 我仍然得到相同的输出错误。关于代码,它太长了。这不是我的代码 – Wes

+0

-I标志指向编译器查找代码中包含的头文件的目录。请检查提及的内容是否存在于您的驱动器上,如果这不是您的升级安装不包含uBLAS。 – Alex

+0

我检查了以下目录:/usr/local/Cellar/boost/1.65.0/include/boost/numeric/ublas。 boost和uBLAS都可以在物理上找到,如您所见。我现在应该怎么做 ? – Wes

相关问题