您的位置:首页 > 运维架构

笔记:vs使用cmake自动添加opencv和boost(MFC使用cmake建立工程)

2016-07-17 10:42 441 查看
 To find boost libs

CMake:How To Find Libraries
http://www.cmake.org/Wiki/CMake:How_To_Find_Libraries
cmake_minimum_required(VERSION 2.8)
set(Boost_INCLUDE_DIR /usr/local/src/boost_1_46_1)
set(Boost_LIBRARY_DIR /usr/local/src/boost_1_46_1/stage/lib)
find_package(Boost COMPONENTS system filesystem REQUIRED)
include_directories(${Boost_INCLUDE_DIR})
link_directories(${Boost_LIBRARY_DIR})

add_executable(main main.cpp)
target_link_libraries( main ${Boost_LIBRARIES} )


To find opencv libs:

windows 和 linux 写法有点不一样。

bgs中的CMakeLists用find_package(opencv REQUIRED)来定位opencv。新版本OpenCV用FindOpenCV.cmake的命名规则(module mode),或者OpenCVConfig.cmake(config mode)。


解决:

bgs的CMakeLists中,opencv--->OpenCV!!!

cmake 自动找到 /usr/local/share/OpenCV/OpenCVConfig.cmake。

本机上有两个opencv版本。/usr/local/share/OpenCV/OpenCVConfig.cmake (2.4.6) 和/usr/local/share/opencv/OpenCVConfig.cmake (2.1.0 zombie)

看里面的变量名字,可能不一样,大小写不一定一致

如果是一个mfc工程,需要做如下的修改:

项目目录下新建CMakeLists.txt,写入

cmake_minimum_required (version 2.6)
project (test1)
set (test1_VERSION_MAJOR 1)
set (test1_VERSION_MINOR 0)
add_definitions(-DUNICODE -D_UNICODE)
add_definitions(-D_AFXDLL)
set(CMAKE_MFC_FLAG 1)
add_executable(test1 WIN32 MfcDialogTest.cpp MfcDialogTestDlg.cpp stdafx.cpp MfcDialogTest.rc)
打开命令提示符,进入到项目目录,运行cmake -G "Visual Studio 10" .,生成test1.sln和其他关联文件,打开test1.sln,编译

add_definitions(-DUNICODE -D_UNICODE) 默认字符串用UNICODE
set(CMAKE_MFC_FLAG 1) 静态链接mfc
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: