include <eigen dense =“”>成功,包括<eigen>失败

时间:2018-06-12 08:37:23

标签: c++ include eigen

我的问题类似于这个5岁question

如果我使用以下代码,我可以成功编译它:

#include <Eigen/Dense>
#include <iostream>
//#include <boost/serialization/array_wrapper.hpp>
#include <boost/date_time/gregorian/gregorian.hpp>

int main(){
        std::cout<<"asfserea"<<std::endl;
        boost::gregorian::date d(boost::gregorian::day_clock::local_day());
        std::cout << d.year() << d.month() <<d.day() << std::endl;
        return 0;
}

但是我将注释从#include <Eigen/Dense>更改为#include <Eigen>,从#include <boost/date_time...>更改为#include <boost/serialization...>后出错:

enter image description here

2 个答案:

答案 0 :(得分:3)

您正在寻找的文件是<Eigen/Eigen>。如果要包含<Eigen>,则应在包含路径中添加正确的文件夹。

对于array_wrapper.hpp,您需要更新版本的Boost。至少版本1.67.0有此文件。

答案 1 :(得分:3)

当您#include <Eigen>时,您的编译器会查看您告诉它的目录,以查找名为Eigen的文件。它只找到名为Eigen文件夹,并且该文件夹中的 有文件EigenDense在该文件夹中看起来不是

如果您更改编译器参数以包含Eigen文件夹(而不是它的父级),则可以#include <Eigen>#include <Dense>。或者,您可以按原样保留包含目录,并将Eigen/添加到所有Eigen包含