Windows下编译cvBlob (cmake) 和 POCO C++

1. 前言

很久很久以前,opencv下有两个blob deteciton/tracking的external library: cvBlob和cvBlobsLib。 后者应用的很少,估计很早也就停止开发了。而且这里说cvBlobsLib还用到了MFC---更不用想了。

倒是cvBlob的作者一直还有更新。最新是 0.10.4,2012年5月发布。

一直都想用用这个cvBlob。接着最近的机会看一看


2. cvBlob

下载最新版。cmake方式编译,nice & simple,love CMake!


3. 问题

唯一值得说的是默认只生成cvBlob.dll,没有lib文件。导致有些test项目抱怨找不到lib文件。

作者给出的原因是licence原因所以默认只生成DLL文件???表示不懂。

把CMakeLists.txt里的add_library(cvblob SHARED ${cvBlob_CVBLOB}) 中的SHARED换成STATIC就可以了


这里似乎给出另一种解法,还没细看。原因是这个。


4.更多

HowToCompile:下面的留言也许会有帮助

HowToInstall :下面的讨论中(Comment by [email protected], Mar 31, 2011)也提到了上面这个问题。解释和上面第二种应该是一样的。

搜索的过程中发现还是很多人在用cvBlob,相关的文章还是很多的。对上面的问题也似乎解释的更"正确"

Windows+Visual Studio2008编译CVBlob库

cvBlob in Windows7 using VisualStudio2010

/IMPLIB (Name Import Library)


5. POCO C++

随便把POCO也编了。虽然没有用到cmake,但windows下提供了很简单周到的buildwin.cmd文件,很easy,而且编译过程输出也是我最喜欢的花花绿绿的,一目了然。如果有机会要写DOS的script也许可以借鉴

Microsoft Visual Studio 7.1 (2003), 8.0 (2005), 9.0 (2008), 10.0 (2010) or 11.0 (2012) is required to build the POCO C++ Libraries on Windows platforms.

全部编译要花点时间,不过连warning都是寥寥几个,很棒的库!


PS. 最后编译的samples还包括TwitterClient---与时俱进!

PPS. 哭死--记得命令行中指定x64啊,不然默认Win32(x86),还要再编一次。。。

rem Platform [Win32|x64|WinCE]
set PLATFORM=%5%
if not "%PLATFORM%"=="" (
if not "%PLATFORM%"=="Win32" (
if not "%PLATFORM%"=="x64" (
if not "%PLATFORM%"=="WinCE" goto usage)))

if "%PLATFORM%"=="" (set PLATFORM_SUFFIX=) else (
if "%PLATFORM%"=="Win32" (set PLATFORM_SUFFIX=) else (
if "%PLATFORM%"=="x64" (set PLATFORM_SUFFIX=_x64) else (
if "%PLATFORM%"=="WinCE" (set PLATFORM_SUFFIX=_CE))))


如果没有指定参数,或指定了Win32,PLATFORM_SUFFIX都是空字串。编译工程就会选Foundation_vs110.sln,而不是Foundation_x64_vs100.sln或Foundation_CE_vs90.sln



你可能感兴趣的:(Windows下编译cvBlob (cmake) 和 POCO C++)