D:\ZBY\CodeBase\eigen-3.4.0\Eigen\src\Core\MathFunctions.h:389: error: conflicting declaration of C function 'long long int std::abs(long long int)' EIGEN_USING_STD(abs); ^
时间: 2024-01-24 12:20:29 浏览: 102
leetcode答案-zby-leetcode-python:zby的Python版答案
这个错误可能是由于在使用Eigen库时,Eigen库的MathFunctions.h头文件中的`EIGEN_USING_STD(abs)`语句与其他头文件中的`abs`函数发生了冲突。这通常是因为系统头文件中的`abs`函数与Eigen库中的`abs`函数重名而引起的。
解决这个问题可以尝试以下方法:
1. 在使用Eigen库之前,加上`#define EIGEN_DONT_VECTORIZE`宏定义,禁止Eigen库向量化,这样就可以避免`EIGEN_USING_STD(abs)`语句与系统头文件中的`abs`函数冲突。
2. 在使用Eigen库之前,添加`#include <cmath>`头文件,这样可以确保使用的是C++标准库中的`abs`函数。
3. 将Eigen库中的`MathFunctions.h`头文件中的`EIGEN_USING_STD(abs)`语句注释掉,然后手动调用C++标准库中的`abs`函数。
希望以上方法能够帮到你解决问题。
阅读全文