windows下编译cvblob

    首先到google code(https://code.google.com/p/cvblob/)下载cvblob的源代码,由于使用的操作系统为windows7,因此我们在版本列表中选择cvblob-0.10.4-src.zip下载。解压zip文件后,使用cmake生成vs解决方案,在生成过程中,可能会报如下错误:

CMake Error at cvBlob/CMakeLists.txt:20 (find_package):

By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has

asked CMake to find a package configuration file provided by "OpenCV", but

CMake did not find one.

Could not find a package configuration file provided by "OpenCV" with any

of the following names:

OpenCVConfig.cmake

opencv-config.cmake

Add the installation prefix of "OpenCV" to CMAKE_PREFIX_PATH or set

"OpenCV_DIR" to a directory containing one of the above files. If "OpenCV"

provides a separate development package or SDK, be sure it has been

installed.

    问题描述比较长,归纳为一句话就是:”没有找到OpenCVConfig.cmake文件“。因此我们只需要在cvblob的CMakeLists.txt中将opencv的OpenCVConfig.cmake添加进去。在cvblob的cvblob的CMakeLists.txt中添加set(OpenCV_DIR E:/mylibs/opencv2.4.2/build),如下:

set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMakeScripts)
set(OpenCV_DIR G:/mylibs/opencv2.4.2/build)

注意E:/mylibs/opencv2.4.2/build为OpenCVConfig.cmake的路径。


    生成vs的解决方案后,我们使用vs2008打开cvBlob.sln,然后编译解决方案下的所有工程。编译时可能会报如下错误:

Error29fatal error LNK1104: cannot open file '..\lib\Debug\cvblob.lib'test

Error30fatal error LNK1104: cannot open file '..\lib\Debug\cvblob.lib'test_random

Error33fatal error LNK1104: cannot open file '..\lib\Debug\cvblob.lib'test_tracking

解决方案如下:https://code.google.com/p/cvblob/issues/detail?id=34

I got the same error in visual studio 2010. The problem is that visual studio does not create a lib file unless functions are explicitly defined as dllexport functions.
To fix this add the following to cvblob.h:

#define EXPORT __declspec (dllexport)

In the extern "C" block, add the word EXPORT to each function.
For example: 
EXPORT double cvContourPolygonArea(CvContourPolygon const *p);

As soon as you add at least one EXPORT keyword the .lib file will be created. You should add EXPORT to all the functions in the extern "C" block though, otherwise you will get linkage errors for the functions you didn't add EXPORT for.

This fix was based on the following MSDN post: http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/15e4fc47-68b5-4798-9e5d-d6d72da1f631/

编译成功!
   运行test.exe程序,结果如下:
windows下编译cvblob_第1张图片

   

你可能感兴趣的:(windows下编译cvblob)