【发布时间】:2015-05-31 20:44:32
【问题描述】:
我正在尝试在带有 Dev-C++ 的 Windows 上使用 Eigen 库。我正在使用“入门”程序:
#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;
}
但我得到以下编译日志:
编译器:默认编译器 构建 Makefile:“C:\Dev-Cpp\tsesn\Makefile.win” 执行制作... make.exe -f "C:\Dev-Cpp\tsesn\Makefile.win" 全部 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"
在 C:/Dev-Cpp/eigen/Eigen/Core:287 包含的文件中,
来自 C:/Dev-Cpp/eigen/Eigen/Dense:1,
来自 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 (先用这个函数)
C:/Dev-Cpp/eigen/Eigen/src/Core/util/Memory.h:228: 错误:(每个未声明的标识符对于它出现的每个函数只报告一次。)
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 (先用这个函数)
C:/Dev-Cpp/eigen/Eigen/src/Core/util/Memory.h: 在函数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(先用这个函数)
在 C:/Dev-Cpp/eigen/Eigen/Core:343 包含的文件中,
来自 C:/Dev-Cpp/eigen/Eigen/Dense:1,
来自 main.cpp:2:
C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:在全球范围内:
C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:39:错误:“bool”之前的预期主表达式
C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:39: 错误:预期>' 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'不是<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'的成员不是`'的成员
C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:207:错误:模板参数 4 无效
C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:207: 错误:ISO C++ 禁止声明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: 错误: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:错误:在“;”之前请求非聚合类型的成员令牌
C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:在全球范围内:
C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:262: 错误:模板参数 4 无效
C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:262: 错误:ISO C++ 禁止声明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: 错误: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: 错误: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' 没有类型
C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h: 在成员函数const T* Eigen::DenseStorage<T, Size, -0x000000001, _Cols, _Options>::data() const':
C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:316: error:array' 中没有被声明
C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:316: 错误:在';'之前请求非聚合类型的成员令牌
C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h: 在成员函数`T* Eigen::DenseStorage::data()'中:
C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:317: 错误: `array' 没有被声明 C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:317: 错误:在';'之前请求非聚合类型的成员令牌
C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:在全局范围内: C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:323: 错误:模板参数 4 无效 C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:323: 错误:ISO C++ 禁止声明没有类型的“m_data”
C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h: 在成员函数const T* Eigen::DenseStorage<T, Size, _Rows, -0x000000001, _Options>::data() const':
C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:345: error:array' 中没有被声明
C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:345:错误:在';'之前请求非聚合类型的成员令牌
C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h: 在成员函数T* Eigen::DenseStorage<T, Size, _Rows, -0x000000001, _Options>::data()':
C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:346: error:array' 中没有被声明
C:/Dev-Cpp/eigen/Eigen/src/Core/DenseStorage.h:346: 错误:在';'之前请求非聚合类型的成员令牌
C:/Dev-Cpp/eigen/Eigen/src/Core/PlainObjectBase.h:254:被之前的错误弄糊涂了,赶紧退出
make.exe: *** [main.o] 错误 1
执行终止
我该如何解决这个问题?
【问题讨论】: