我正在阅读为旧版本的OpenCV(OpenCV 2计算机视觉,PACT)编写的书,它告诉我在创建新的属性表时将lib文件夹包含在我的Visual Studio 2013 Property Manager中。
我在当前的GitHub版本(opencv-master,即OpenCV 3.1.x)中看不到名为lib的目录。此文件夹是否已被其他内容替换?
我用cmake构建了OpenCV。我找到了4 year old unanswered question,其中有人也在寻找这个文件夹。他们尝试从另一个不再存在的目录构建库,但这对他们来说无论如何都没有...
另一位OpenCV用户告诉我,GitHub并不包含这些库,所以你必须在本地进行cmake。我还不清楚我可以在哪里或如何制作它们。
我意识到预先构建的二进制文件有这个,但是我避免它们,因为我需要在opencv_contrib中使用SURF函数,所以我需要从源代码构建它。
答案 0 :(得分:4)
预构建的二进制文件将在相应的路径中具有库文件夹
Local System Path(Opencv Folder)-> build->x64/x86->vc10/vc11/vc12->lib.
正如您提到的那样,您不希望使用它,那么剩下的唯一选择就是在本地构建它,如果您计划将Opencv库用于各种功能和项目,这是一个更好的选择,因为它解决了许多构建您可能会在以后遇到的错误。
我使用Cmake Graphical用户界面来构建opencv,以下是我在系统上成功构建库所遵循的步骤。
答案 1 :(得分:0)
作为Nikita遮阳篷的更新: 有一个cmake构建错误,如果未设置OpenCV_RUNTIME,则不会创建x64文件夹。如果您使用比当时可用的Visual Studio版本新的Visual Studio版本构建了旧的OpenCV(例如<= 3.2.0)
要解决此问题,请在./cmake/OpenCVDetectCXXCompiler.cmake和./cmake/templates/OpenCVConfig.root-WIN32.cmake.in(或在./cmake/OpenCVConfig.cmake中)中添加正确的MSVC_VERSION elseif-cases。 [...]
elseif(MSVC_VERSION EQUAL 1900)
set(OpenCV_RUNTIME vc14)
# old version ends here with endif()
elseif(MSVC_VERSION GREATER 1909 AND MSVC_VERSION LESS 1920)
set(OpenCV_RUNTIME vc15)
elseif(MSVC_VERSION GREATER 1919 AND MSVC_VERSION LESS 1930)
set(OpenCV_RUNTIME vc16)
endif()
[...]