Svalorzen / AI-Toolbox

A C++ framework for MDPs and POMDPs with Python bindings
GNU General Public License v3.0
648 stars 98 forks source link

Problems when building the library #66

Closed Rob1d closed 1 year ago

Rob1d commented 1 year ago

I'm actually on fedora 34 and a wanted to install this framework. I installed all of the dependecines and run a the cmake .. in the build folder, like mentionned in the repo. And when I run the make command, i got this error

AI-Toolbox/src/Factored/Bandit/Policies/MARMaxPolicy.cpp: In constructor ‘AIToolbox::Factored::Bandit::MARMaxPolicy::MARMaxPolicy(const AIToolbox::Factored::Bandit::Experience&, AIToolbox::Vector, double, double, bool)’: /home/cote2porc/AI-Toolbox/src/Factored/Bandit/Policies/MARMaxPolicy.cpp:22:27: error: ‘begin’ was not declared in this scope 22 | for (auto r : ranges_) {

I use the g++ 11.3.1 20220421 if this can help you, thank you

Svalorzen commented 1 year ago

You might have a version of Eigen that is too old; do you have Eigen 3.14 or 3.13?

The error seems to be caused by the fact that no begin method exists on the Eigen vector; those were introduced in Eigen 3.14 if I'm not mistaken.

Rob1d commented 1 year ago

I got this package eigen3-devel-3.3.9-4

Svalorzen commented 1 year ago

Ups sorry, my bad, I meant 3.4/3.3, not 3.14/3.13.

But yeah, that is 3.3 which is unfortunately not enough. At the same time, because Eigen is a header only library, it's fairly easy to just download it and setup CMake so that it uses the local one rather than that package (nothing additional to build). After that, it should work out of the box.

Rob1d commented 1 year ago

Okay I get the right version of eigen and now it works ! thanks you