与 OpenCV 3.0 链接时出现“无法解析的外部符号”错误

2023-12-12

我从源代码构建了 OpenCV 3.0。以及一些额外模块的 contrib 存储库。我手动设置 VS2013 项目以使用生成的 lib 文件。

我的代码现在很简单:

#include "opencv2\core\core.hpp"
#include "opencv2\imgcodecs\imgcodecs.hpp"

int _tmain(int argc, _TCHAR* argv[])
{
    cv::Mat image = cv::imread("img.jpg");
    return 0;
}

但在 VS 2013 社区版本中它给了我这些错误:

enter image description here

I see 类似的线程,他们说这是由 x86/x64 问题引起的。但我的项目已经是x86了。我构建的 OpenCV 也是针对 x86(见下文)。可能是什么原因呢?

enter image description here

ADD 1

OpenCV 3.0INSTALL项目生成以下lib目录:

所以它确实是一个x86 one.

enter image description here

我的lib路径配置为上面的路径:

enter image description here

我添加了所有*d.lib files.

enter image description here

下面是我的 VC 项目Configuration Manager

enter image description here

所以确实是这样x86, too.

哪里可能出错?

ADD 2

我手动搜索了fastFree()功能。它定义在opencv_core300d.lib文件。我用dumpbin /symbols命令检查符号。我发现它的名字被完全破坏了fastFree@cv@@YAXPAX@Z。那么为什么找不到呢?


以下是在 Windows(使用 Windows 8.1 测试)和 Visual Studio(使用 Visual Studio 2013 测试)中静态链接 OpenCV 的 C++ 项目中使用带有预编译库的 OpenCV 3.0.0 来运行该程序的步骤:

#include <opencv2\opencv.hpp>
using namespace cv;

int main()
{
    Mat3b img = imread("path_to_image");
    imshow("img", img);
    waitKey();
    return 0;
}
  1. 下载自http://opencv.org/downloads.html
  2. Extract
  3. Let's call OPENCV_DIR the dir containing:
    • build
    • source
  4. Create an empty project:
    • 新项目 -> Visual C++ -> 空项目
  5. 添加一个 cpp 文件(例如 Start.cpp),其中将包含您的主要函数(例如上面的代码片段)
  6. 配置调试
  7. Add include and lib directories:
    • 配置属性 -> VC++ 目录
    • 包含目录:添加 OPENCV_DIR\build\include
    • 库目录:添加 OPENCV_DIR\build\x86\vc12\staticlib
  8. 添加所需的库(以下内容适用于这个简单的示例,如果需要其他功能,您应该添加更多库):

    • opencv_core300d.lib
    • opencv_highgui300d.lib
    • opencv_imgproc300d.lib
    • opencv_hal300d.lib
    • opencv_imgcodecs300d.lib
    • libjpegd.lib;
    • libpngd.lib
    • libjasperd.lib
    • 伊尔姆IMFD.lib
    • libtiffd.lib
    • libwebpd.lib
    • zlibd库
    • ippicvmt库
    • %(附加依赖项)
  9. 配置属性 -> C/C++ -> 代码生成 -> 运行时库

    • 设置为多线程调试 (/MTd)
  10. 对于 RELEASE 构建,您需要在发布模式下执行步骤 6 到 9,在步骤 8 中添加不带尾随“d”的库,并在步骤 9 中添加多线程 (/MT)。

  11. Enjoy!

作为奖励,我还建议安装图像观察Visual Studio 的扩展。对于调试你的程序非常非常有用Mats!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

与 OpenCV 3.0 链接时出现“无法解析的外部符号”错误 的相关文章

  • IplImage 内的 IplImage

    是否可以使用 OpenCv JavaCv 将图像放置在图像内 例如我有一个 1000x1000 图像和一个 100x100 图像 在 600x600 的位置 我想将较小的图像放置在较大的图像内 假设蓝色框是 1000x1000 IplIma
  • 安装 gstreamer 对 opencv python 包的支持

    我已经从源代码构建了自己的 opencv python 包 import cv2 print cv2 version 打印 3 4 5 现在我面临的问题是关于 opencv 的 VideoCapture 类中的 gstreamer 的使用
  • opencv:如何将所有黑色像素转换为透明并将其保存到png文件

    如下图 我希望所有黑色像素都是透明的并将其保存为 png 文件 您可以像这样快速完成并矢量化 import cv2 import numpy as np Load image as Numpy array in BGR order na c
  • OpenCV warpPerspective 性能缓慢

    在我的应用程序中 我跟踪一个物体 到达它的地方corners都在这个框架中 我发现它之间的单应性corners从最后一帧开始和 当前帧 使用单应性来做perspectiveTransform on the corners在当前帧中找到 得到
  • Python中使用cv2获取当前视频播放位置

    我正在尝试使用 CV2 和 Python 从播放视频中获取当前播放时间位置 如果可能 以毫秒为单位 目前我正在使用此示例代码来播放视频文件 import cv2 import numpy as np file name 2 mp4 wind
  • 为什么 _Printf_format_string_ 宏不产生任何警告?

    在下面的代码片段中 格式说明符的错误用法MyFormat 根据 SAL 规范 调用应该产生警告 并且对于相同的调用printf 我确实会收到所有这些警告 但即使使用 我的代码也会默默编译 W4 我究竟做错了什么 我正在使用 MSVC 201
  • 如何使用 python cv2 api 将 xy 点格式化为 unactorPoints?

    我在格式化要传递给 unactorPoints 的 x y 点列表时遇到问题 opencv 2 4 1 该错误消息是 C 特定的 并抱怨点数组不是 CV 32FC2 类型 我不应该能够传入 Nx2 numpy 数组吗 import cv2
  • 从 C++ 源文件创建 Windows DLL

    我有多个 C 源文件 我想使用它们创建动态链接库 我在 linux 中使用 gcc shared 和 ln 看到这种情况发生 但是对于 Windows 我想我必须修改源文件才能生成 DLL 有没有办法用提供的源文件生成DLL 类似于linu
  • 如何在没有 OpenCv Manager 的情况下运行 OpenCV 代码

    我正在使用 OpenCV4Android 版本 2 4 10 并在 Samsung Galayx GT I9300 上测试我的代码 我遇到的问题是 我必须从 Play 商店下载 Opencv Manager 以便我的 opencv 代码运行
  • 如何使用 Visual C++ 在 win32 API 中创建圆形/圆形按钮

    我有一个 Visual C 中的 Window Win32 API 应用程序 我没有使用MFC 我必须创建一个带有位图图像的圆形 圆形按钮 我的应用程序有一个皮肤视图 任何人都可以帮助我完成这项任务吗 按钮是窗口 您可以使用 CreateW
  • MSVC - 如何确定类型是否必须移动? [复制]

    这个问题在这里已经有答案了 我似乎遇到了编译器 库错误的问题 当我尝试时 include
  • 如何在 CMake Makefile 中包含 OpenCV 库

    我希望你可以帮助我 我有一个简单的 CMakeLists txt 以便在 Leopard 10 5 8 上构建我的项目 我正在使用 CMake 2 8 1 目前这是代码 cmake minimum required VERSION 2 8
  • 构建 OpenCV 时出错 :: MonitorFromRect 未在此范围内声明

    我试图建立OpenCV version 2 4 8与它一起使用CodeBlocks and MinGw 我按照以下指示进行操作here http kevinhughes ca tutorials opencv install on wind
  • 附加信息:OpenCV:使用 c# 的不同大小的对象

    目前 我的 EmguCV c 代码面临问题 我试图从数据库中识别我的图像 但它不起作用 一旦检测到我的脸 它就会崩溃 然后会出现此错误 附加信息 OpenCV 不同大小的对象 我尝试寻找这个错误 但我一无所知 这是我的代码 Action f
  • 使用 Unity3D 解决 PnP

    我有一个真实 物理的棍子 上面连接有红外摄像头和一些红外 LED 它们形成了我正在使用的模式 以便使虚拟棍子以与物理棍子相同的方式移动 为此 我在 Python 中使用 OpenCV 并将由solvePnP 计算的旋转和平移向量发送到 Un
  • 从单应性估计 R/T

    我一直在尝试计算 2 个图像中的特征 然后将这些特征传递回CameraParams R没有运气 特征已成功计算并匹配 但是问题是将它们传递回R t 我明白你必须分解Homography为了使这一点成为可能 我已经使用如下方法完成了 http
  • 跟踪白色背景中的白球(Python/OpenCV)

    我在 Python 3 中使用 OpenCV 来检测白场上的白 黑球 并给出它的精确 x y 半径 和颜色 我使用函数 cv2 Canny 和 cv2 findContours 来找到它 但问题是 cv2 Canny 并不总是检测到圆的完整
  • 有没有办法检测图像是否模糊? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道是否有一种方法可以通过分析图像数据来确定图像是否模糊 估计图像清晰度的另一种非常简单的方法是使用拉普拉斯 或 LoG 滤波器并
  • 使用来自本地对象的消息的 std::Exception

    以下代码是否可以安全地抛出带有自定义消息的异常 include
  • 使用 Windows 电源管理 API 调暗显示器

    我正在尝试做一些看起来很简单的事情 我只想让我的程序能够在某些条件下调整显示器亮度 于是 我向窗户望去电源管理API http msdn microsoft com en us library aa373163 28v vs 85 29 a

随机推荐