与 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 链接时出现“无法解析的外部符号”错误 的相关文章

  • 使用 Unity3D 解决 PnP

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

    我正在 OpenCV 中进行图像拼接 从不同位置拍摄平面场景的照片并尝试构图全景图 我修改了缝合示例以满足我的需要 openCV 拼接管道的问题是 它假设相机纯粹旋转 但对我来说情况并非如此 当拍摄的照片与场景完全正交时 没有相机旋转 只是
  • 从单应性估计 R/T

    我一直在尝试计算 2 个图像中的特征 然后将这些特征传递回CameraParams R没有运气 特征已成功计算并匹配 但是问题是将它们传递回R t 我明白你必须分解Homography为了使这一点成为可能 我已经使用如下方法完成了 http
  • OpenCV 中“IplImage”和“CvMat”的全称是什么?

    有一个IplImage and CvMat在 OpenCV 中 他们的全名是什么 IPL in IplImage代表英特尔处理库 这是Intel维护OpenCV时的残余 CV in cvMat代表计算机视觉矩阵 这是图形中常用的数据结构 I
  • 如何使用 SimpleBlobDetector 获取 blob 的额外信息?

    robot sherrick 回答了我这个问题 https stackoverflow com a 13534094 1705967 这是他回答的后续问题 cv SimpleBlobDetectorOpencv 2 4 中的 看起来非常令人
  • 如何获取与Windows主题相关的图标?

    如何获取Windows中某个控件的图标 更具体地说 我想从 ListView 标题中获取排序箭头图标 我尝试使用以下方法来获取它 HRESULT GetSortArrowBmp HWND hwnd HEADERSORTARROWSTATES
  • 在 Android 中使用 OpenCV 查找图像匹配

    我正在尝试构建一个 Android 应用程序 该应用程序可以比较设备相机拍摄的照片 以在一组图像中找到匹配项 我已经在 Android Studio 上配置了 OpenCV 但仅此而已 有人可以通过链接到资源或建议教程来提供帮助吗 Open
  • 子类化 QVector

    这是我的问题 我想对 QVector 进行子类化 以便添加一些特定于我的上下文的函数 天真的方法是 class ClassVector public QVector
  • 是否有与 gcc --kill-at 等效的 Visual C++?

    也就是说 DLL 名称末尾有一个额外的 8 这会造成问题 显然 在 gcc 中使用 kill at 标志可以解决这个问题 但我找不到任何类似的 MSVC 建议 编辑 更多信息 我试图让 C JNI dll 工作 但我总是得到 线程 Thre
  • 如何在 opencv 3.0 Beta 中从文件读取 UMat?

    我想用UMat所以我的代码可以使用 OpenCL OpenCV 3 0 0 Beta 在 GPU 和 CPU 上运行 但我找不到将图像文件读入的方法UMat或转换一个Mat to UMat 如何将图像读入UMat 样品用于Mat to UM
  • 警告:发生了非法反射访问操作(java 中的便携式 opencv)

    我想做一个便携的opencv将依赖项添加到 maven 文件的应用程序pom xml 简化的代码是 import org opencv core Mat public class Builder public static void mai
  • OpenCV 旋转图像而不裁剪澄清

    我想扩展这个主题 参考用户 Lars Schillingmann 给出的这个 SO 问题和接受的答案 在 C 中的 OpenCV 中旋转图像而不裁剪 https stackoverflow com questions 22041699 ro
  • opencv如何使用鼠标事件不规则地选择图像区域? c/c++ [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 最近在学习opencv 有没有办法使用鼠标事件选择图像区域 我已经尝试过三角形的了 如果我想选择特定区域而不是三角形怎么办 谢谢你 我对此进
  • OpenCV Python RTSP 流

    我想使用 RTSP 从 IP 摄像机流式传输视频 但我有一个问题 我已经安装了先决条件 而且我的 RTSP 链接可以在 VlC 播放器上运行 但是当我在编辑器中尝试并运行它时 它说找不到相机 这是我的代码 import cv2 import
  • OpenCV 读取视频文件时内存不足

    此示例从文件中读取视频cv2 VideoCapture在 python OpenCV 中内存不足 import cv2 cap cv2 VideoCapture file mp4 while True ret frame cap read
  • 如何更新 C++ dll 而无需将 exe 与 lib 文件重新链接?

    首先 我指的是 Windows 环境和 VC 编译器 我想要做的是重建 Vc dll 并保持与已链接到 lib 的 exe 的兼容性 而无需重建 exe 或使用 LoadLibrary 动态加载 dll 换句话说 有没有办法向 dll 添加
  • 将yuv420p原始数据转换为opencv图像

    我有来自 rtmp 服务器的原始数据 像素格式为 yuv420p 我使用管道来读取数据 但我不知道如何将原始数据解码为图像 command ffmpeg command extend loglevel fatal i rtmp localh
  • 在OpenCV中将YUV转换为BGR或RGB

    我有一个电视采集卡 其输入内容为 YUV 格式 我在这里看到了与此问题类似的其他帖子 并尝试尝试所述的所有可能的方法 但它们都没有提供清晰的图像 目前最好的结果是 OpenCVcvCvtColor scr dst CV YUV2BGR 函数
  • 从凸点获取角点

    我编写了算法来提取图像中显示的点 它们形成凸形 我知道它们的顺序 如何从这些点中提取角点 顶部 3 个和底部 3 个 我正在使用opencv 如果你已经有了物体的凸包 并且该包包含角点 那么你需要做的就是简化包直到它只有 6 个点 有很多方
  • 将向量 转换为大小为 (n x 3) 的 Mat,反之亦然

    我有 Point3d 向量 向量形式的点云 如果我使用 OpenCV 提供的转换 比如 cv Mat tmpMat cv Mat pts Here pts is vector

随机推荐