OpenCV2和3共存:
如果2默認編譯安裝了体啰,那么2的庫位置應該在/usr/local/lib ,再CMakeLists.txt中 find_package因苹,系統(tǒng)默認會找/usr/local/share/OpenCVConfig.cmake
再下載3源碼弊琴,解壓后
mkdir build
cd build
更改安裝目錄(先在/usr/local下新建文件夾opencv3)
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3 ..
編譯:
make -j
sudo make install
這樣就把3安裝在opencv3文件夾了(bin lib share include)
在使用的時候棋弥,在CMakelists.txt中,如要用3帚豪,在find_package前指明路徑:
set(OpenCV_DIR /usr/local/opencv3/share/OpenCV)
find_package(OpenCV 3 REQUIRED)
用2的時候:
find_package(OpenCV 2 REQUIRED)
如果要用gdb調試碳竟,需要在txt中:
SET(CMAKE_BUILD_TYPE "Debug")
不過這樣會減慢編譯速度
如果要用C++11:
add_definitions(-std=c++11)
最簡單的流程:
cmake_minimum_required(VERSION 2.8)
project(XXX)
#指定編譯器:
SET(CMAKE_C_COMPILER g++)
#找到要用的包:
find_package(OpenCV 3 REQUIRED)
include_directories(
${PROJECT_SOURCE_DIR}
#其他頭文件路徑
)
#創(chuàng)建庫:
add_library(${PROJECT_NAME} SHARED
XXXXX.cpp
)
\#給庫鏈接到開源庫
target_link_libraries(${PROJECT_NAME}
${OpenCV_LIBS}
)
#生成可執(zhí)行文件,鏈接到創(chuàng)建的庫
add_executable(main main.cpp)
target_link_libraries(main ${PROJECT_NAME})
eigen的使用
首先需要在根目錄
mkdir cmake_modules
并在cmake_modules里放進 FindEigen3.cmake文件
然后:
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules)
#或者 LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules)
find_package(Eigen3 REQUIRED)
include_directories( ${EIGEN3_INCLUDE_DIR} )
補充:
opencv 解決ippicv下載問題狸臣,離線:ippicv_2019_lnx_intel64_general_20180723.tgz
https://blog.csdn.net/orDream/article/details/84311697
OpenCV必須make install 安裝到其他地方莹桅,不然相關頭文件找不到,還有必須指定頭文件路徑烛亦,否則找不到诈泼。
set(OpenCV_DIR /usr/local/opencv3/share/OpenCV)
#注釋的這種不好,不推薦
#set(OpenCV_DIR /home/guoxianzheng/opencv-3.4/build)
find_package(OpenCV 3 REQUIRED)
message(STATUS "This is opencvdir ${OpenCV_DIR}")
include_directories(
${OpenCV_DIR}
)
include_directories(/usr/local/opencv3/include)