【发布时间】:2019-12-11 15:57:36
【问题描述】:
目前,我使用 mingw32-g++.exe(GNU GCC 编译器)作为代码块,使用 -std=C++14。编译器在这里下载:http://www.codeblocks.org/downloads/26
但是,这里所有的教程程序都编译失败:https://eigen.tuxfamily.org/dox/group__TutorialLinearAlgebra.html
#include 已正确完成。只有计算线,如
Matrix2f x = A.ldlt().solve(b); 和 Matrix2f x = A.ldlt().solve(b);
失败。我也尝试过使用 Intel C++ 编译器,但仍然失败。
我应该下载哪些编译器才能使用 Eigen C++?
非常感谢您的帮助
更新1:使用“基本线性求解”示例,我得到这个错误:
文件 IndexedViewHelper.h:
“对 Eigen::fix 的未定义引用”,第 57 行
"未定义对 Eigen::fix 的引用"
更新 2: 使用第二个示例 A.ldlt().solve(b),我明白了:
“[跳过 3 个实例化上下文,使用 -ftemplate-backtrace-limit=0 禁用]”,第 100 行
“[跳过 3 个实例化上下文,使用 -ftemplate-backtrace-limit=0 禁用]”,第 90 行
...
更新 3: 完整代码 + 编译器: 从字面上看,只有一个 main.cpp 文件 + 将 eigen 文件夹添加到搜索目录
` #include <Eigen/Dense>
using namespace std;
using namespace Eigen;
int main()
{
Matrix2f A, b;
A << 2, -1, -1, 3;
b << 1, 2, 3, 1;
cout << "Here is the matrix A:\n" << A << endl;
cout << "Here is the right hand side b:\n" << b << endl;
Matrix2f x = A.ldlt().solve(b);
cout << "The solution is:\n" << x << endl;
}`
【问题讨论】:
-
您应该发布编译器错误。 -- 我应该下载哪些编译器才能使用 Eigen C++? -- 我怀疑 Eigen 无法使用任何符合 C++14 的编译器进行编译。
-
在 Linux 上,我用 gcc 编译 Eigen 从来没有遇到过问题。很可能问题不在编译器选择上
-
特征库与 g++ 编译器配合得很好!你得到什么错误?
-
请提供完整简单的测试方案
-
请逐字显示您正在编译的完整代码,包括项目中的所有文件和您正在调用的编译器命令行以及完整的编译器输出。
标签: c++ gcc mingw codeblocks eigen