Мой вопрос похож на этот 5-летний вопрос.
Я могу успешно скомпилировать его, если использую следующий код:
#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...>:
Я клонировал проект из github, и в его файле он использовал #include <Eigen>, а затем использовал typedef Eigen :: Matrix.etc.
Судя по вашему комментарию, у вас недоразумение. Изменение #include не влияет на необходимость квалификации Matrix с Eigen::.
Предпочтительно #include <Eigen/Eigen>, а не добавление подпапки Eigen в ваш путь включения.





Ищете файл <Eigen/Eigen>. Если вы хотите включить <Eigen>, вы должны добавить правильную папку в свой путь включения.
Для array_wrapper.hpp вам потребуется более новая версия Boost. По крайней мере, версия 1.67.0 имеет этот файл.
Моя повышенная версия - 1_67_0, и в ней есть array_wrapper.hpp.
@jack Если #include <boost/date_time/gregorian/gregorian.hpp> работает, я предполагаю, что у вас уже есть Boost в вашем пути включения, поэтому #include <boost/serialization/array_wrapper.hpp> также должен работать. Вы уверены, что ваш путь включения ведет к правильной версии Boost, а не к более старой версии, в которой нет array_wrapper.hpp?
Я включил boost_1_67_0 / stage / lib в CPLUS_INCLUDE_PATH, я включил boost_1_67_0 в PATH
Когда вы используете #include <Eigen>, ваш компилятор ищет в каталогах, о которых вы ему сказали, файл с именем Eigen. Он находит только папка с именем Eigen, а в в этой папке есть файлы Eigen и Dense. Это не смотрит внутри этой папки.
Если вы измените параметры вашего компилятора, включив в него папку Eigen (а не ее родительскую), вы сможете это сделать с #include <Eigen> и #include <Dense>. В качестве альтернативы вы можете оставить свои каталоги include такими, какие они есть, и добавить Eigen/ ко всем подключаемым файлам Eigen.
Почему вы хотите изменить заголовки, если ваш код компилируется в текущем состоянии?