添加 #include <opencv2/opencv.hpp> 报错

本文介绍了解决在使用OpenCV头文件时遇到的错误方法。通过修改项目属性中的预处理器宏设置,添加_CRT_SECURE_NO_WARNINGS声明来禁用安全警告,成功解决了编译问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用opencv 头文件#include <opencv2/opencv.hpp> 时 会报错如下

error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.  

解决方案如下:

  1. 右击项目,单击属性,进入项目的“属性页”

    error C4996: 'fopen': This function or ...
  2.  

    在上图蓝色背景的那一项添加一个语句: _CRT_SECURE_NO_WARNINGS

    error C4996: 'fopen': This function or ...
  3.  

    单击确定并完成操作

    error C4996: 'fopen': This function or ...
  4.  

    再次编译运行通过!

    error C4996: 'fopen': This function or ...
  5.  

    通过之后就可以继续编写了

    error C4996: 'fopen': This function or ...
  6.  

    这样解决后,我们才可以进行后面的工作

    error C4996: 'fopen': This function or ...

转载于:https://www.cnblogs.com/hustpet/p/7152435.html

OpenCV 中的 `imshow` 函数用于在窗口中显示图像,若在编译时出现 `unresolved external symbol "void __cdecl cv::imshow(...)"` 的链接错误,通常意味着编译器无法找到该函数的实现。以下是一些可能的原因和对应的解决方法: ### OpenCV 模块依赖未正确链接 `imshow` 函数属于 OpenCV 的 `highgui` 模块,因此需要确保链接了 `opencv_highgui` 或 `opencv_world` 相关的库文件。如果未正确配置链接器,即使代码中包含了 `#include <opencv2/core.hpp>`,也会导致链接错误。应检查项目属性中的“链接器 → 输入 → 附加依赖项”,确保包含类似 `opencv_world420.lib`(Release)或 `opencv_world420d.lib`(Debug)的库文件[^1]。 ### 缺少必要的头文件 虽然 `core.hpp` 是 OpenCV 的核心头文件,但 `imshow` 所在的 `highgui` 模块需要单独包含。应在代码中添加: ```cpp #include <opencv2/highgui.hpp> ``` 或更具体的: ```cpp #include <opencv2/highgui/highgui.hpp> ``` 以确保编译器能够识别 `imshow` 函数声明[^1]。 ### 配置环境路径错误 OpenCV 的库文件路径必须正确添加到项目的“链接器 → 常规 → 附加库目录”中。如果路径未设置或设置错误,链接器将无法找到所需的 `.lib` 文件,从而导致链接失败。例如,OpenCV 安装目录下的 `build\x64\vc15\lib` 路径应被正确引用。 ### 使用 `#pragma comment(lib, ...)` 自动链接库文件 为了简化配置,可以在源文件顶部使用 `#pragma comment(lib, ...)` 指令,直接指定要链接的库文件。例如: ```cpp #pragma comment(lib, "opencv_world420d.lib") // Debug 模式 ``` 或 ```cpp #pragma comment(lib, "opencv_world420.lib") // Release 模式 ``` 此方法避免了手动在项目属性中配置库文件的步骤,但需确保库版本与 OpenCV 安装版本一致。 ### 示例代码 以下是一个完整的使用 `imshow` 的示例程序,确保 OpenCV 配置无误后可正常运行: ```cpp #include <opencv2/highgui.hpp> #include <opencv2/core.hpp> #include <iostream> int main() { cv::Mat src = cv::imread("./3.jpg"); if (src.empty()) { std::cout << "could not load the image" << std::endl; return -1; } cv::imshow("src", src); cv::waitKey(0); return 0; } ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值