D:\Qt\Qt5.9.8\Tools\mingw530_32\i686-w64-mingw32\include\c++\cstdlib:174: error: conflicting declaration of C function 'long long int std::abs(long long int)' abs(long long __x) { return __builtin_llabs (__x); } ^
时间: 2024-01-24 20:17:38 浏览: 133
QtCreator 4.8.2 Build on Qt5.9.8 with Mingw530
这个错误是因为你在代码中调用了 `std::abs` 函数,但是在 `cstdlib` 头文件中已经定义了一个同名的函数。这个错误可以通过以下方法解决:
1. 使用 `std::labs` 函数替代 `std::abs` 函数。`std::labs` 函数是用来计算 `long` 类型整数的绝对值。
2. 使用 `<cmath>` 头文件中的 `std::abs` 函数。`<cmath>` 头文件中的 `std::abs` 函数可以处理不同类型的参数,包括 `int`、`long`、`float`、`double`、`long double` 等。
3. 使用 `using namespace std;` 或者 `using std::abs;` 声明,来指定使用 `std` 命名空间下的 `abs` 函数。
例如:
```c++
#include <iostream>
#include <cmath>
using namespace std;
int main() {
long long num = -10;
cout << "abs(" << num << ") = " << abs(num) << endl;
return 0;
}
```
或者:
```c++
#include <iostream>
#include <cmath>
using std::abs;
int main() {
long long num = -10;
cout << "abs(" << num << ") = " << abs(num) << endl;
return 0;
}
```
阅读全文