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} )
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