C++ 使用特征码C++;?

C++ 使用特征码C++;?,c++,gcc,mingw,codeblocks,eigen,C++,Gcc,Mingw,Codeblocks,Eigen,目前,我使用mingw32-g++.exe(GNU GCC编译器)作为代码块,-std=C++14。编译器已在此处下载: 但是,此处的所有教程程序都无法编译: “包含”操作已正确完成。仅计算行,例如 Matrix2f x=A.ldlt().solve(b)和矩阵x=A.ldlt().solve(b) 失败。我还尝试使用英特尔C++编译器,但仍然失败。 < >我应该下载什么编译器来使用EGEN C++? 非常感谢你的帮助 更新1:使用“基本线性求解”示例,我得到以下错误: 文件IndexedVie

目前,我使用mingw32-g++.exe(GNU GCC编译器)作为代码块,-std=C++14。编译器已在此处下载:

但是,此处的所有教程程序都无法编译:

“包含”操作已正确完成。仅计算行,例如

Matrix2f x=A.ldlt().solve(b)
矩阵x=A.ldlt().solve(b)
失败。我还尝试使用英特尔C++编译器,但仍然失败。
< >我应该下载什么编译器来使用EGEN 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;
}`
`include
使用名称空间std;
使用名称空间特征;
int main()
{
矩阵2f A,b;

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

因此,代码块的常规MinGW编译器仍然可以工作,只是它总是给出错误(+20秒长的编译,在那里它输出一堆类似于上面的消息)

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

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


“错误”(实际上是警告)不再垃圾邮件,程序立即编译。由于某些原因,这些警告显示为错误,并导致编译过程突然停止(显示为失败)你应该发布编译器错误。我应该下载什么编译器来使用EGEN C++?——我怀疑EGIN将无法编译任何C++ 14兼容编译器。在Linux上,我从来没有遇到过用GCC编译特征的问题。很可能这个问题不是编译器选择的。特征库工作得很好。使用g++编译器!您会遇到什么错误?请提供一个完整而简单的测试程序。请显示您正在编译的完整代码,包括项目中的所有文件、您正在调用的编译器命令行以及完整的编译器输出。因此,现在的问题是如果您有新问题,请单独提问。“跳过3个实例化上下文”这必须是较长错误/警告消息的一部分。您可能正在查看“生成消息”选项卡;打开“生成日志”查看整个消息。无论如何,我找到了解决方案。警告设置是一个愚蠢的错误。感谢您的帮助!@user3192711下次您提问时:这正是我们要求完整编译器输出和完整编译器调用的原因。看到这一点,问题会立即变得明显。