我正在编写一个通用 Windows 应用程序,它使用 OpenCV 进行相机校准和标签检测等。
我希望能够在我自己的 DLL 处于调试模式时使用发布模式、完全优化的 OpenCV DLL。这可能吗?如果是这样,我如何配置 CMake 来实现它?
当然,我确实想调试我自己的应用程序。但是,我不想调试 OpenCV 本身。我不想处理 OpenCV 调试构建的性能下降,即使是在调试自己的项目时也是如此。我不想处理额外的库和 dll 的开销,也不想正确设置我的构建配置(这是一个更大项目的一部分,包括 Unity 应用程序,因此构建配置是一个重要问题)。
我使用的是 OpenCV DLL,而不是静态库,因此 STD 库的实现差异问题等不应产生任何影响(除非 OpenCV 跨 DLL 边界传递这些问题......这确实很顽皮)。然而,当我尝试在调试模式下构建应用程序时,在引用 OpenCV Release DLL 时,我遇到了 debug_build_guard:
error LNK2019: unresolved external symbol "bool __cdecl cv::imencode(class cv::String const &,class cv::debug_build_guard::_InputArray const &,...
Run Code Online (Sandbox Code Playgroud)
看来我想要的是一个非常常见的用例。不幸的是我似乎无法在任何地方找到任何有关它的信息。谢谢你的帮助!