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程序,结果如下:


   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值