使用特征C++需要哪个代码块编译器?



目前,我使用mingw32-g++.exe(GNU GCC Compiler(作为代码块,-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);失败。我也尝试使用英特尔C++编译器,但仍然失败。

我应该下载哪些编译器才能使用特征C++?

非常感谢您的帮助

更新1:使用"基本线性求解"示例,我得到此错误:

File IndexedViewHelper.h:

"对 Eigen::fix<1> 的未定义引用",第 57 行

"对 Eigen::fix<0>的未定义引用">

更新2:使用第二个示例A.ldlt().solve(b),我得到这个:

"[ 跳过 3 个实例化上下文,使用 -ftemplate-backtrace-limit=0 禁用 ]",第 100 行

"[ 跳过 3 个实例化上下文,使用 -ftemplate-backtrace-limit=0 禁用 ]",第 90 行

更新 3:完整代码 + 编译器: 字面上只是一个主文件.cpp + 添加特征文件夹来搜索目录

` #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;
}`

解决方案:我只是注意到程序实际上编译成功,但它总是给出错误"[跳过 3 个实例化上下文,使用 -ftemplate-backtrace-limit=0 禁用 ]",第 100 行,文件 CoreEvaluators.h

因此,用于代码块的常规 MinGW 编译器仍然有效。只是它总是给出该错误(+20 秒长的编译,其中它输出一堆像上面这样的消息(。

更新的解决方案:哦,天哪,我觉得自己太愚蠢了。禁用以下警告:

启用有效C++警告(感谢 Scott Meyers( [-Weffc++]。

"错误"(实际上是警告(不再发送垃圾邮件,程序会立即编译。由于某些原因,这些警告显示为错误,并导致编译过程突然停止(使其显示为失败(。几乎是一个不可调试的错误。

最新更新