pbp
pbp

Reputation: 49

Compiling eigen in Dev-C++ and windows

I am trying to use Eigen library on Windows with Dev-C++. I am using the "Getting started" program:

#include <iostream>
#include <Eigen/Dense>
using Eigen::MatrixXd;
int main()
{
  MatrixXd m(2,2);
  m(0,0) = 3;
  m(1,0) = 2.5;
  m(0,1) = -1;
  m(1,1) = m(1,0) + m(0,1);
  std::cout << m << std::endl;
}

But I obtain the following Compile Log:

Compiler: Default compiler Building Makefile: "C:\Dev-Cpp\tsesn\Makefile.win" Executing make... make.exe -f "C:\Dev-Cpp\tsesn\Makefile.win" all g++.exe -c main.cpp -o main.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include" -I"C:/Dev-Cpp/eigen"

In file included from C:/Dev-Cpp/eigen/Eigen/Core:287, from C:/Dev-Cpp/eigen/Eigen/Dense:1, from main.cpp:2: C:/Dev-Cpp/eigen/Eigen/src/Core/util/Memory.h: In function void* Eigen::internal::aligned_malloc(size_t)': C:/Dev-Cpp/eigen/Eigen/src/Core/util/Memory.h:228: error:_aligned_malloc' undeclared (first use this function) C:/Dev-Cpp/eigen/Eigen/src/Core/util/Memory.h:228: error: (Each undeclared identifier is reported only once for each function it appears in.)

C:/Dev-Cpp/eigen/Eigen/src/Core/util/Memory.h: In function void Eigen::internal::aligned_free(void*)': C:/Dev-Cpp/eigen/Eigen/src/Core/util/Memory.h:251: error:_aligned_free' undeclared (first use this function) C:/Dev-Cpp/eigen/Eigen/src/Core/util/Memory.h: In function void* Eigen::internal::aligned_realloc(void*, size_t, size_t)': C:/Dev-Cpp/eigen/Eigen/src/Core/util/Memory.h:283: error:_aligned_realloc' undeclared (first use this function)

In file included from C:/Dev-Cpp/eigen/Eigen/Core:343, from C:/Dev-Cpp/eigen/Eigen/Dense:1, from main.cpp:2: C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h: At global scope: C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:39: error: expected primary-expression before "bool" C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:39: error: expected >' before "bool" C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:56: error: template argument 5 is invalid C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:56: error:value' is not a member of <declaration error>' C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:65: error: template argument 5 is invalid C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:65: error:value' is not a member of `'

C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:207: error: template argument 4 is invalid C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:207: error: ISO C++ forbids declaration of m_data' with no type C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h: In member functionconst T* Eigen::DenseStorage::data() const': C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:227: error: array' has not been declared C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:227: error: request for member of non-aggregate type before ';' token C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h: In member functionT* Eigen::DenseStorage::data()': C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:228: error: `array' has not been declared

C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:228: error: request for member of non-aggregate type before ';' token C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h: At global scope: C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:262: error: template argument 4 is invalid C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:262: error: ISO C++ forbids declaration of m_data' with no type C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h: In member functionconst T* Eigen::DenseStorage::data() const': C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:287: error: array' has not been declared C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:287: error: request for member of non-aggregate type before ';' token C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h: In member functionT* Eigen::DenseStorage::data()': C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:288: error: array' has not been declared C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:288: error: request for member of non-aggregate type before ';' token C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h: At global scope: C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:294: error: template argument 4 is invalid C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:294: error: ISO C++ forbids declaration ofm_data' with no type C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h: In member function const T* Eigen::DenseStorage<T, Size, -0x000000001, _Cols, _Options>::data() const': C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:316: error:array' has not been declared C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:316: error: request for member of non-aggregate type before ';' token C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h: In member function `T* Eigen::DenseStorage::data()':

C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:317: error: `array' has not been declared C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:317: error: request for member of non-aggregate type before ';' token

C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h: At global scope: C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:323: error: template argument 4 is invalid C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:323: error: ISO C++ forbids declaration of `m_data' with no type

C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h: In member function const T* Eigen::DenseStorage<T, Size, _Rows, -0x000000001, _Options>::data() const': C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:345: error:array' has not been declared C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:345: error: request for member of non-aggregate type before ';' token C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h: In member function T* Eigen::DenseStorage<T, Size, _Rows, -0x000000001, _Options>::data()': C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:346: error:array' has not been declared C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:346: error: request for member of non-aggregate type before ';' token

C:/Dev-Cpp/eigen/Eigen/src/Core/PlainObjectBase.h:254: confused by earlier errors, bailing out

make.exe: *** [main.o] Error 1

Execution terminated

How can I solve the problem?

Upvotes: 0

Views: 902

Answers (1)

user2658323
user2658323

Reputation: 553

I'm afraid that the compiler in Dev-C++ (http://www.bloodshed.net/dev/devcpp.html) is ancient, and unsupported by Eigen (http://eigen.tuxfamily.org/index.php?title=Main_Page#Compiler_support). Note the version numbers in there.

You can use a way more modern IDE such as QtCreator (http://wiki.qt.io/Category:Tools::QtCreator), or any other that ships a newer, compliant compiler.

Upvotes: 0

Related Questions