How do I install Eigen2?

25,521

Solution 1

I'm not familiar with Eigen, but from the error message, it looks like it requires an "out of source" build.

This means that if you have downloaded and extracted Eigen to /home/brentonhorne/eigen-eigen-5097c01bcdc4, then you should create a new directory outside of the Eigen root altogether, e.g. /home/brentonhorne/build_eigen and run CMake from there. I guess something like:

mkdir /home/brentonhorne/build_eigen
cd /home/brentonhorne/build_eigen
cmake /home/brentonhorne/eigen-eigen-5097c01bcdc4
make
sudo make install

Solution 2

It should be noted that Eigen library can be installed as a package. sudo apt-get install libeigen3-dev for the most recent library and sudo apt-get install libeigen2-dev for the one mentioned in this question.

Solution 3

Well, I installed it myself and it's working perfectly. Here is what I did (which is same as what I posted before):

  • Download Eigen 3.1.2 from http://eigen.tuxfamily.org/index.php?title=Main_Page.
  • Open a terminal (Ctrl+Alt+T) and run:
cd ~/Downloads
tar xzf eigen-eigen-5097c01bcdc4.tar.bz2
cd eigen-eigen-5097c01bcdc4
sudo cp -r Eigen /usr/include/
  • Done!
  • Copy the Eigen directory to /usr/include.

You'd neet root user privileges to do that. So, open a terminal, browse to the directory containing the Eigen directory, and run sudo cp -r Eigen /usr/include/.

  • To include a header file, say Dense, from the Eigen directory use
#include <Eigen/Dense>
Share:
25,521
Josh Pinto
Author by

Josh Pinto

Updated on September 18, 2022

Comments

  • Josh Pinto
    Josh Pinto over 1 year

    Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. I've been having trouble installing it. When I ran cmake '/home/brentonhorne/eigen-eigen-5097c01bcdc4 where /home/brentonhorne/eigen-eigen-5097c01bcdc4 is the location of the source directory extracted from the tarball I downloaded from the Eigen website, I received the error:

    CMake Error at CMakeLists.txt:8 (message):
    In-source builds not allowed.  Please make a new directory (called a build
    directory) and run CMake from there.  You may need to remove
    CMakeCache.txt.
    
    
    -- Configuring incomplete, errors occurred!
    

    Please tell me how to get past this roadblock. I do not understand much programming but if you can explain to me what I need to do in terms of what to paste into terminal I can do it! If it is needed to help me I am running 12.10.

    If you need to know the contents of the INSTALL file in the source directory here they are:

    Installation instructions for Eigen
    ***********************************
    
    Explanation before starting
    ***************************
    
    Eigen consists only of header files, hence there is nothing to compile
    before you can use it. Moreover, these header files do not depend on your
    platform, they are the same for everybody.
    
    Method 1. Installing without using CMake
    ****************************************
    
    You can use right away the headers in the Eigen/ subdirectory. In order
    to install, just copy this Eigen/ subdirectory to your favorite location.
    If you also want the unsupported features, copy the unsupported/
    subdirectory too.
    
    Method 2. Installing using CMake
    ********************************
    
    Let's call this directory 'source_dir' (where this INSTALL file is).
    Before starting, create another directory which we will call 'build_dir'.
    
    Do:
    
      cd build_dir
      cmake source_dir
      make install
    
    The "make install" step may require administrator privileges.
    
    You can adjust the installation destination (the "prefix")
    by passing the -DCMAKE_INSTALL_PREFIX=myprefix option to cmake, as is
    explained in the message that cmake prints at the end.
    
  • Josh Pinto
    Josh Pinto over 11 years
    I received the same error again after the cmake line... CMake Error at CMakeLists.txt:8 (message): In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there. You may need to remove CMakeCache.txt. -- Configuring incomplete, errors occurred!
  • Fraser
    Fraser over 11 years
    There may be a file in your Eigen source directory called "CMakeCache.txt". This is a file which CMake generates when run, and which caches a load of variables to save it looking for the same set of things on every run. If you tried running CMake in your Eigen source once, it could have left behind this CMakeCache.txt file. No matter where you subsequently run CMake from, the cache file will make it appear as if you're running from the Eigen source. So you need to delete this file if it exists. If this still doesn't work, the last option is to do a fresh checkout and try from scratch.
  • green
    green over 11 years
    You don't have to do anything fancy. Just copy the directory as I've written in the updated answer.
  • gbmhunter
    gbmhunter over 7 years
    This worked for me in Ubuntu 64-bit 16.04.1.