我有一个由矩阵组成的图像处理算法,我有自己的矩阵运算代码(乘法,逆......)。但是我使用的处理器是 ARM Cortex-A8 处理器,它具有 NEON 协处理器进行矢量化,因为矩阵运算是 SIMD 运算的理想情况,我要求编译器 (-mfpu=neon -mfloat-abi=softfp) 生成 NEON我的代码的说明,但编译器没有这样做,然后我还尝试为 Matrix 操作编写自己的 NEON 内在代码,但我发现这样做非常困难。
所以,我想到了利用Eigen库来保证矩阵运算的向量化。因此,我立即下载了 Eigen C++ 库并尝试按照他们的教程中给出的方式使用它,但不幸的是,当我运行他们的示例程序时出现编译错误。
任何有使用 Eigen 经验的人,任何例子都会很有帮助吗?请帮助我如何去做。
帮助!
谢谢
我的 Eigen 文件夹位于:/home/ubuntu/Documents/eigen我在 Eclipse 的 C++ 项目的附加目录中设置了这个路径。然后我运行以下程序(示例)-
#include <Eigen/Core>
// import most common Eigen types
USING_PART_OF_NAMESPACE_EIGEN
int main(int, char *[])
{
Matrix3f m3;
m3 << 1, 2, 3, 4, 5, 6, 7, 8, 9;
Matrix4f m4 = Matrix4f::Identity();
Vector4i v4(1, 2, 3, 4);
std::cout << "m3\n" << m3 << "\nm4:\n"
<< m4 << "\nv4:\n" << v4 << std::endl;
}
我得到的错误 -
为项目 Test_Eigen 构建配置调试 ****
做所有
构建文件:../main.cpp
调用:Sourcery G++ C++ 编译器
arm-none-linux-gnueabi-g++ -I/home/ubuntu/Documents/eigen -O0 -g3 -Wall -c -fmessage-length=0 -fcommon -MMD -MP -MF"main.d" -MT"main .d" -mcpu=cortex-a8 -marm -o"main.o"
“../main.cpp”
../main.cpp:6: 错误: 'int' 之前的预期构造函数、析构函数或类型转换 make: *** [main.o] 错误 1