在ubuntu上安裝Cmake、opencv2.4.9、PCL1.8、g2o
本教程用到的軟件和工具可以在百度網盤下直接下載(想下載別的版本的下面也有官網下載鏈接):
鏈接:http://pan.baidu.com/s/1bLtXx0 密碼:3x98
一、Cmake的安裝
官網下載Cmake:https://cmake.org/download/
1、把cmake-3.8.1.tar.gz壓縮包放到想放到的目錄(Cmake的安裝路徑默認在:/usr/local/中),然後解壓,解壓命令:sudo tar -zxvf cmake-3.8.1.tar.gz
2、進入Cmake文件夾:cd cmake-3.8.1
3、執行 sudo ./bootstrap 如果出現如下錯誤提示
Error when bootstrapping CMake Cannot find appropriate C++ compiler on this system Please specify one using environment variable CXX…
則執行: sudo apt-get install build-essential 安裝gcc-c++,然後再從新執行步驟3的命令
4、執行sudo make
5、執行 sudo make install
6、執行 cmake --version(注意cmake和--中間有空格)如果輸出Cmake的版本則說明安裝成功
cmake version 3.8.1
CMake suite maintained and supported by Kitware (kitware.com/cmake).
二、OpenCV的安裝
官網下載OpenCV源代碼:https://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip/download
a、配置依賴項
安裝opencv前,需要先安裝依賴項,執行:
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg62-dev libtiff4-dev cmake libswscale-dev libjasper-dev
在這裏我遇到了報錯:
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關係樹
正在讀取狀態信息... 完成
有一些軟件包無法被安裝。如果您用的是 unstable 發行版,這也許是
因爲系統無法達到您要求的狀態造成的。該版本中可能會有一些您需要的軟件
包尚未被創建或是它們已被從新到(Incoming)目錄移出。
下列信息可能會對解決問題有所幫助:
下列軟件包有未滿足的依賴關係:
build-essential : 依賴: libc6-dev 但是它將不會被安裝 或
libc-dev
依賴: gcc (>= 4:4.4.3) 但是它將不會被安裝
依賴: g++ (>= 4:4.4.3) 但是它將不會被安裝
libgtk2.0-dev : 依賴: libglib2.0-dev (>= 2.27.3) 但是它將不會被安裝
依賴: libgdk-pixbuf2.0-dev (>= 2.21.0) 但是它將不會被安裝
依賴: libpango1.0-dev (>= 1.20) 但是它將不會被安裝
依賴: libatk1.0-dev (>= 1.29.2) 但是它將不會被安裝
依賴: libcairo2-dev (>= 1.6.4-6.1) 但是它將不會被安裝
依賴: libxrandr-dev (>= 2:1.2.99) 但是它將不會被安裝
libtiff4-dev : 依賴: libtiff5-dev (> 4.0.3-6~) 但是它將不會被安裝
E: 無法修正錯誤,因爲您要求某些軟件包保持現狀,就是它們破壞了軟件包間的依賴關係。
這些報錯表示有些依賴庫沒有安裝或者版本和需要的版本不一樣,需要安裝:
第一個build-essential的依賴問題,分別執行:
sudo aptitude update
sudo aptitude install build-essential
第二個libgtk2.0-dev依賴問題,執行:
sudo aptitude install libgtk2.0-dev
第三個libtiff4-dev依賴問題,網上博客說,執行這個命令:
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg62-dev cmake libswscale-dev libjasper-dev
b、編譯opencv
1、執行 cmake .
2、執行 make
3、執行 sudo make install
4、下面配置library,打開/etc/ld.so.conf.d/opencv.conf,在末尾加入/usr/local/lib (有可能是個空文件,沒關係)
5、執行 sudo ldconfig
6、然後編輯/etc/bash.bashrc 加入
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
至此,opencv安裝配置完畢,下面開始測試
---------------------------------------------------------------------------------------------
在一個目錄下放置一張圖片,命名爲0.jpg, 再新建一個show.cpp文件,添加如下代碼:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
int main(int argc, char **argv)
{
Mat img;
img = imread(argv[1], 1);
if (argc != 2 || !img.data) {
cout<<"No image data.\n"<<endl;
return -1;
}
namedWindow("Display Image", CV_WINDOW_AUTOSIZE);
imshow("Display Image", img);
waitKey(0);
return 0;
}
再新建一個CMakeLists.txt,添加如下內容:
cmake_minimum_required(VERSION 2.8)
project(opencvtest)
find_package( OpenCV REQUIRED )
add_executable( opencvtest opencvtest.cpp )
target_link_libraries( opencvtest ${OpenCV_LIBS} )
進入這個文件夾下,執行
cmake ..
Make
./ opencvtest 0.jpg
此時就可以看到打開的圖片了。
三、PCL安裝
github上PCL1.8源碼:https://github.com/PointCloudLibrary/pcl
1、執行 sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
2、執行 sudo apt-get update
3、執行 sudo apt-get install libpcl-all
PCL安裝完成!
四、g2o安裝
github上g2o源碼:https://github.com/RainerKuemmerle/g2o
a、安裝依賴項
執行 sudo apt-get install libeigen3-dev libsuitesparse-dev libqt4-dev qt4-qmake libqglviewer-qt4-dev
b、解壓g2o並編譯安裝:
1、執行 mkdir build
2、執行 cd build
3、執行 cmake ..
4、執行 make
5、執行 sudo make install
g2o安裝完成!
安裝成功後,可以在/usr/local/include/g2o中找到它的頭文件,而在/usr/local/lib中找到它的庫文件
參考博客:
Cmake: http://blog.csdn.net/wz3118103/article/details/39826397
OpenCV:http://www.linuxidc.com/Linux/2016-07/132879.htm
PCL:http://blog.csdn.net/zs1503/article/details/51079506
g2o:http://blog.csdn.net/yoouzx/article/details/53083496?locationNum=2&fps=1