小编dra*_*101的帖子

当使用带有“-march=native”的 Eigen 时,是什么导致了此内存访问冲突错误 (0xC0000005)?

我正在代码块中重写一些 C++ 代码(最初在 Matlab 中作为 MEX 函数编写),以便我可以使用为 C++ 设计的调试和分析工具。我正在重写的代码使用 Eigen 和 SIMD 内在指令,因此我需要使用该-march=native标志进行编译。我在运行主项目时遇到内存访问冲突错误。这是导致问题的代码的简化版本:

#include <iostream>
#include <fstream>
#include <string>
#include <sys/stat.h>
#include <immintrin.h>
#include <Eigen/Dense>
#include "Parameters.h"

using namespace std;

int main()
{
    
    Parameters p;
    p.na = 16;
    p.TXangle = Eigen::VectorXd::LinSpaced(p.na,0,p.na-1);

    cout << p.TXangle << endl;

    cout << "Hello world!" << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

其中Parameters是使用以下两个文件定义的自定义类:

参数.h

#ifndef PARAMETERS_H_INCLUDED
#define PARAMETERS_H_INCLUDED

class Parameters
{
    public:
        int na;
        Eigen::VectorXd TXangle;

        Parameters();

};

#endif // PARAMETERS_H_INCLUDED
Run Code Online (Sandbox Code Playgroud)

参数.cpp

#include <string>
#include …
Run Code Online (Sandbox Code Playgroud)

c++ gcc mingw avx eigen

5
推荐指数
1
解决办法
1190
查看次数

标签 统计

avx ×1

c++ ×1

eigen ×1

gcc ×1

mingw ×1