编译错误:致命错误:' boost / numeric / ublas / matrix.hpp'文件未找到

时间:2017-09-06 13:57:55

标签: c++ boost

这些是头文件和库

#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 sierra 10.12上跑步 我已经通过以下方式尝试了安装提升:

  • sudo port install boost
  • brew install boost
  • sudo port install boost + universal

但我仍然遇到同样的问题。 我很乐意离开这个禁区。 我也是一个macos新手。

1 个答案:

答案 0 :(得分:0)

似乎您的“提升”包含目录在环境定义的包含目录中不存在。您可能希望通过将“-I”参数传递给g ++命令来指定一个,即

  

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

此外,您的代码不完整,如果您实际调用某些boost函数,则可能需要添加一些用于链接的对象,然后您将面临“未定义引用”错误。要克服这种情况,您需要为g ++命令指定“-L”标志。