path:不是std的成员 怎么解决这个错误
时间: 2024-02-21 21:01:13 浏览: 21
这个错误通常是由于编译器不支持C++17标准导致的。为了解决这个问题,你需要在项目的build.gradle文件中添加以下代码:
```
android {
...
defaultConfig {
...
externalNativeBuild {
cmake {
cppFlags "-std=c++17"
}
}
}
...
}
```
这将在编译时使用C++17标准。如果你的项目使用的是NDK,则需要在Android.mk文件中添加以下代码:
```
APP_CPPFLAGS += -std=c++17
```
这应该能够解决这个问题。如果还有其他问题,请告诉我。
相关问题
“is_regular_file”: 不是“std::experimental::filesystem::v1::directory_entry”的成员
这个错误提示一般出现在你使用了`is_regular_file()`函数却没有包含正确的头文件或者没有正确地使用命名空间。`is_regular_file()`函数在C++17中被引入到文件系统库中,你需要确保你的编译器支持C++17,并且在代码中包含正确的头文件和命名空间:
```c++
#include <filesystem> //头文件
namespace fs = std::filesystem; //命名空间别名
int main() {
fs::path p = "path/to/file";
if (fs::is_regular_file(p)) {
//...
}
return 0;
}
```
如果你使用的是早期版本的C++或者编译器不支持C++17,可以使用Boost库中的文件系统库,使用方式类似,但是头文件和命名空间会有所不同。
error C2039: "visualize": 不是 "cv::HOGDescriptor" 的成员
这个错误提示意味着在 `cv::HOGDescriptor` 类中没有 `visualize` 成员函数。这个错误通常发生在你试图调用一个不存在的成员函数时。
如果你想要可视化 `cv::HOGDescriptor` 的结果,可以使用 `cv::Mat` 类来显示图像。你可以使用 `compute` 函数计算 `cv::HOGDescriptor` 的特征向量,然后将其转换为 `cv::Mat` 类型的图像。下面是一个示例代码:
```cpp
cv::HOGDescriptor hog;
hog.setSVMDetector(hog.getDefaultPeopleDetector());
cv::Mat img = cv::imread("path/to/image");
std::vector<cv::Rect> detections;
hog.detectMultiScale(img, detections);
for (const auto& det : detections) {
cv::rectangle(img, det, cv::Scalar(0, 255, 0), 2);
}
cv::imshow("HOG", img);
cv::waitKey(0);
```
这个示例代码将加载一张图像,使用 `cv::HOGDescriptor` 检测人体目标,并在图像上绘制矩形框。最后,使用 `cv::imshow` 函数显示图像。