ubuntu下同時安裝和使用不同版本的庫
工作中我們時常需要在不同版本的庫間切換,如果同時安裝了多個版本的庫,將會讓我們的工作更加輕鬆.本文介紹了在ubuntu下安裝並使用不同版本庫的方法.
安裝
ubantu 下常用的庫安裝位置有兩個:/usr 和/usr/local. 通過apt-get 安裝的庫位於/usr,自己make install的庫通常位於/usr/local下。安裝位置通常按照 include,lib,share資料夾來組織,include和lib分別存放標頭檔案和庫檔案,而cmake模組通常在share裡。如果我們要將庫安裝到自己指定的位置只需要在cmake時給CMAKE_INSTALL_PREFIX賦值即可,cmake DCMAKE_INSTALL_PREFIX=/usr/my,這樣庫就安裝到/usr/my下了,在使用時find_package是找不到這個位置的,需要指定模組的位置才能正常使用.
使用
find_package()命令的原理是找到模組檔案,並從中提取變數,之後我們就能正常使用OpenCV_LIB等變量了.模組檔案字尾是cmake,通常位於/usr/share或/usr/local/share下,cmake預設搜尋的也是這兩個位置.嘗試以下cmakelist,將搜尋出系統中所有opencv模組的位置以及版本
PROJECT(test)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
FIND_PACKAGE(OpenCV 8 REQUIRED)#嘗試找一個不存在的版本
通常我們需要使用特定版本,在cmake之前賦值OpenCV_DIR變數為自己需要的opencv版本的模組位置即可.
PROJECT(test)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
SET(OpenCV_DIR /usr/share/OpenCV/)#這裡寫自己需要的opencv版本的模組位置
FIND_PACKAGE(OpenCV REQUIRED)
MESSAGE(${OpenCV_VERSION})#輸出看一下
MESSAGE(${OpenCV_DIR})