1 IntelliSense: #error 指令: "OpenCV 4.x+ requires enabled C++11 support" e:\bianyuan\opencv\build\include\opencv2\core\cvdef.h 775 4
时间: 2023-08-23 13:04:20 浏览: 198
这个错误是由于你在使用 OpenCV 4.x+ 的库时没有开启 C++11 的支持所导致的。你需要在编译的时候开启 C++11 的支持,具体的方法可以根据你使用的编译器不同而有所不同。在 Visual Studio 中,你可以在项目属性中的 C/C++ -> 命令行选项中添加 /std:c++11 或 /std:c++14 选项来开启 C++11 的支持。在 g++ 中,你可以使用 -std=c++11 或 -std=c++14 选项来开启 C++11 的支持。
相关问题
1 IntelliSense: 在没有适当 operator() 的情况下调用类类型的对象或将函数转换到指向函数的类型 d:\code-projectsvs\opencv\tqbiaos\tqbiaos\main.cpp 29
这个错误通常出现在尝试将一个类的对象作为函数调用的参数,而该类没有重载`operator()`运算符。另外一个可能的情况是将一个函数转换为指向函数的指针类型,而函数没有声明为指针类型。
在你提供的代码中,出现这个错误的位置在第29行。根据错误信息,我们可以看出可能是在将`contours[i]`作为`moments`构造函数的参数时出现了问题。`moments`是一个类,它的构造函数没有声明为接受一个`vector<Point>`类型的参数。
为了解决这个问题,我们应该将`moments`的构造函数替换为`moments()`,并将`contours[i]`作为参数传递给`moments()`函数,如下所示:
```c++
Moments moments = moments(contours[i]);
```
应该改为:
```c++
Moments moments = moments(contourArea(contours[i]));
```
这里将`contours[i]`的面积作为参数传递给了`moments()`函数,这是计算轮廓的几何矩所必需的。
ui.textEdit.语句报错 1 IntelliSense: expression must have class type c:\Users\qiubo\Desktop\65test\65test\test.cpp 21 2 65test 2 IntelliSense: expected a member name c:\Users\qiubo\Desktop\65test\65test\test.cpp 25 1 65test
这个错误是因为您的代码中使用了错误的语法,导致IntelliSense无法识别它。
根据您提供的信息,我猜测您可能是这样使用ui.textEdit的:
```
ui.textEdit.setPlainText("Hello World!");
```
这是不正确的语法,应该改为:
```
ui.textEdit->setPlainText("Hello World!");
```
注意到textEdit是一个指针,所以需要用箭头运算符“->”而不是点号“.”来访问它的成员函数。
请尝试修改您的代码并重新编译,看看是否可以解决这个问题。
阅读全文