使用特征C++需要哪个代码块编译器?
Which codeblock compiler is needed to use Eigen 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++]。
"错误"(实际上是警告(不再发送垃圾邮件,程序会立即编译。由于某些原因,这些警告显示为错误,并导致编译过程突然停止(使其显示为失败(。几乎是一个不可调试的错误。
- 为什么所有C++编译器都会崩溃或挂起此代码
- 为C++03编译器编写部分unique_ptr,该编译器与较新的编译器在公共代码库上运行
- 与其他编译器相比,相同的代码在工作室Microsoft提供不同的输出
- Visual Studio 中是否有来自代码块的编译器标志的类似物?
- C++ 代码的行为因编译器而异
- 代码未在联机编译器上显示结果
- 在 Azure DevOps 构建管道中使用英特尔C++编译器为 Linux 环境构建C++代码
- 编译器资源管理器(godbolt)如何安全地运行代码?
- 使用特征C++需要哪个代码块编译器?
- GCC 编译器是否应该对涉及 [[fallthrough]] 属性的格式错误的C++代码进行诊断?
- boost::spirit--试图编译大多数简单代码的编译器错误
- 使用其他编译器编译QT代码
- 使用 Mac 终端编译器编译 c++14 代码
- 我最近更改了编译器路径以运行 c++ 代码,但现在我无法运行任何 python 代码。我该如何解决这个问题?
- 编译器是否C++具有相同模板参数集的每个模板类实例生成代码?
- 为什么当我的代码超出函数范围时,"does not name a type"出现编译器错误?
- 如何获得代码::块的C++代码编译器?
- 提升精神代码.编译器错误
- 代码编译器-如何编译ASM代码
- C/C++ C# 代码编译器