我正在尝试根据these instructions构建 OpenCV 。用 CMake 生成后,我在构建文件夹中打开 OpenCV.sln ,切换到发布模式并成功构建了 ALL_BUILD 。但是,当我尝试在CMake下构建 INSTALL 选项时,出现如下错误:
Error LNK2001 unresolved external symbol "public: virtual struct QMetaObject const * __cdecl cvv::qtutil::Signal::metaObject(void)const "
Error LNK2019 unresolved external symbol "public: void __cdecl cvv::qtutil::ZoomableImage::updateConversionResult(class cv::Mat const &,enum cvv::qtutil::ImageConversionResult)const "
...
我正在使用Visual Studio 19在Windows 10上安装OpenCV 4.2。如何解决此问题?
这是Visual Studio中错误消息的图像:
答案 0 :(得分:1)
将我的评论变成答案:
here中描述的GitHub问题引用了与您发布的错误类似的错误。虽然建议的“解决方案”似乎更像是一种变通办法,但它可能有助于解决问题。首先,通过在BUILD_opencv_cvv
变量设置为OFF
的情况下运行CMake,尝试在没有cvv
模块(OpenCV的交互式GUI组件)的情况下进行构建:
cmake -DBUILD_opencv_cvv=OFF ...
您还可以使用CMake GUI来设置变量,方法是单击添加条目按钮,并将BUILD_opencv_cvv
定义为OFF
。
GitHub问题进一步说明,如果进行此更改后仍然存在未定义的引用错误,您还可以尝试将BUILD_opencv_world
设置为OFF
。
cmake -DBUILD_opencv_cvv=OFF -DBUILD_opencv_world=OFF ...
这可能有助于成功构建内容,但应注意,这些禁用的模块将被排除在构建之外。