Reputation: 49
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 function
const 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 function
T* 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 function
const 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 function
T* 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 of
m_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
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