【问题标题】:C++ Visual Studio release build is not working (OpenCV 4.5.2)C++ Visual Studio 发布版本不起作用(OpenCV 4.5.2)
【发布时间】:2021-07-28 08:23:30
【问题描述】:

现在,我尝试使用 OpenCV 从 C++ 源代码构建发布模式。

此源代码是基于调试模式构建的,但不是基于发布模式构建的。

以下图片是我的 OpenCV 库设置。

请给我你的帮助

1>------ Build started: Project: OpenCVServer, Configuration: Release x64 ------
1>StreamServer.obj : error LNK2001: unresolved external symbol "void __cdecl cv::imshow(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class cv::_InputArray const &)" (?imshow@cv@@YAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV_InputArray@1@@Z)
1>StreamServer.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl cv::VideoCapture::read(class cv::_OutputArray const &)" (?read@VideoCapture@cv@@UEAA_NAEBV_OutputArray@2@@Z)
1>C:\workspace\OpenCVStream\OpenCVServer\x64\Release\OpenCVServer.exe : fatal error LNK1120: 2 unresolved externals
1>Done building project "OpenCVServer.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

【问题讨论】:

  • 请提供您在尝试构建 Release 时遇到的错误的文本或屏幕截图。
  • 我收到以下错误消息。
  • 错误可能是因为您向链接器提供了 OpenCV 的 ...d.lib。库文件名中的d后缀表示是调试库。所有 .lib 文件通常作为两个文件提供,一个用于发布(不带 d),另一个用于调试(带 d)。尝试找到发布 .lib 并将其放入您的链接器配置中。
  • 感谢您的帮助。我解决了这个问题。
  • 如果以上评论正确解决了您的问题,请不要忘记接受my answer 和/或UpVote。接受答案可以在答案开头的左侧完成。有一个复选标记表示接受它,向上箭头表示 UpVoting。

标签: c++ visual-studio opencv


【解决方案1】:

该错误很可能是因为您向发布链接器配置提供了名为 ...d.lib 的 OpenCV 库。

库文件名中的d后缀表示是调试库。所有 .lib 文件通常作为两个文件提供,一个用于发布(不带 d),另一个用于调试(带 d)。

尝试找到发布 .lib 并将其放入您的链接器配置中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    • 1970-01-01
    • 2020-03-23
    • 1970-01-01
    • 1970-01-01
    • 2020-08-05
    相关资源
    最近更新 更多