我正在代码块中重写一些 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)