CMake和Boost和OpenCV以及Windows及Mac

本文介绍了在2014年9月26日更新的关于CMake、Boost和OpenCV的配置经验,特别是在Mac和Windows平台上的挑战。在Mac上,由于必须使用libc++,需要特定于Boost的设置。而在Windows上,尽管指定了库文件路径,仍然需要在Visual Studio中手动配置。OpenCV从2.4.8到2.4.9的升级带来了接口变化,如新增和移除的库,以及接口API的调整。作者强调了这些工具的配置复杂性,但同时也表明随着实践,解决问题的能力逐渐增强。
摘要由CSDN通过智能技术生成

2014-09-26 更新:

折腾了一天,would you believe that fstream (including ifstream, ofstream ) won't work WITHIN Xcode !!!
我用的的是 Xcode 4.5.1,ML 10.8.5.
完全一样的代码,拿出来单独编译运行就没有问题,不论是连libstdc++还是libc++都没有问题,就是在Xcode里就是不行!!!
顺便,

1. 前言

突然发现相当一部分时间似乎都花在编译系统,程序上,解决起问题越来越得心应手,不过不知道花这么多时间值不值得。。。


2. CMake

昨天晚上到今凌晨3点,加今天一上午,又折腾了一通。

CMake靠find_package(ModuleName) 来定位每个module的头文件和库。每个FindOpenCV,FindBoost,或者OpenCVConfig.cmake,Boost-config.cmake都是私人订制,如果花足够的时间,肯定能精通所有的细节。但是。。。。


3. Boost

官网上还没有正式的CMake流程。就导致针对Boost的FindBoost.cmake更不标准了

3.1 Mac

Mac下因为必须用链接libc++的,而不是MacPorts中的GNU版本(libstdc++)所以必须指定

set(BOOST_ROOT "/Users/llz/Packages/boost_1_55_0/build-boost155/"),同时

set(Boost_NO_SYSTEM_PATHS ON)
set(Boost_NO_BOOST_CMAKE ON)


3.2 Windows

Windows下库文件名像libboost_filesystem-vc120-mt-1_56.lib,即使指定了正确的路径也找不着 尴尬

手动指定set(Boost_LIBRARY_DIR "D:/dev-packs/boost_1_56_0/stage/lib")也没用,必须到Visual Studio里手动给出路径。。。也许是变量名没找对 疑问


4. OpenCV

一直都是槽点最多的 尴尬尴尬发火

4.1 OpenCV 2.4.8到2.4.9又有很多接口变化

2.4.9多了什么videoio249.lib,shape249.lib,imgcodesc249.lib等;但同时少了contrib.lib

另外 <opencv2/video/background_segm.hpp>中的接口也变了

BackgroundSubtractorMOG没有了

BackgroundSubtractorMOG2好像改成了纯虚函数,不能在自己的类中这样定义了(不能实例化虚函数错误):

cv::BackgroundSubtractorMOG2 mog;

4.2 CMake

机器上编译了2.4.9,CMake总会找到。最后手动设置 OpenCV_INCLUDE_DIRS,OpenCV_LIBS 指向2.4.8的版本才通过


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值