學習日記1——ubuntu環境下學習C++以及安裝PCL庫
ubuntu環境下學習C++以及安裝PCL庫
配置環境
安裝build-essential,可以在新立得搜尋然後安裝或者在終端裡輸入:
sudo apt-get install build-essential
Hello Ubuntu C++!
建立一個hello.cpp的檔案,編寫程式碼:
#include
<iostream>
using namespace std;
int main()
{
cout
<< “Hello Ubuntu C++!” <<endl;
return 0;
}
第一次就儲存在主目錄。
不然就要尋找路徑cd,否則會報錯
然後在終端輸入:
g++ hello.cpp -o hello
./hello
即可看到程式輸出:Hello Ubuntu C++!
Ubuntu18.04下PCL庫的安裝與測試
安裝依賴庫
sudo apt-get update
sudo apt-get install git build-essential linux-libc-dev
sudo apt-get install cmake cmake-gui
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
sudo apt-get install mpi-default-dev openmpi-bin openmpi-common
sudo apt-get install libflann1.9 libflann-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-dev
安裝metslib
wget https://www.coin-or.org/download/source/metslib/metslib-0.5.3.tgz
tar xzvf metslib-0.5.3.tgz
cd metslib-0.5.3
./configure
make -j{執行緒數}
sudo make install
安裝VTK-8.2.0
sudo apt-get install cmake-curses-gui
sudo apt-get install freeglut3-dev
tar xzvf VTK-8.2.0.tar.gz
cd VTK-8.2.0
mkdir build
cd build
cmake …
make -j6
sudo make install
安裝qt5
sudo apt-get install libqhull* libgtest-dev
sudo apt-get install pkg-config
sudo apt-get install libxmu-dev libxi-dev
sudo apt-get install mono-complete
從github上把PCL原始碼clone下來
git clone https://github.com/PointCloudLibrary/pcl.git
編譯原始碼
cd pcl
mkdir release
cd release
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr
-DBUILD_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON
-DCMAKE_INSTALL_PREFIX=/usr …
make
安裝
sudo make install
CMakeLists.txt 語法介紹
1.cmake版本要求
在這句新增滿足你對Cmake特徵需求的最小版本號。
cmake_minimum_required( VERSION 2.8 )
版本查詢
2.設定生成專案名稱(pcl_test)
建立一個工程,括號內pcl_test為自己工程的名字
project(pcl_test)
3.由於我們是建立一個PCL專案,因此需要找到對應的PCL package,如果找不到則專案建立失敗。除此之外,我們還可以使用一下方式:
1)如果是需要某一個PCL的某一個元件:
find_package(PCL 1.9 REQUIRED COMPONENTS io)
2)如果是幾個元件:
find_package(PCL 1.9 REQUIRED COMPONENTS io common)
3)如果需要整個安裝包:
find_package(PCL 1.9 REQUIRED)
如:
find_package( PCL REQUIRED COMPONENT common io )
include_directories( ${PCL_INCLUDE_DIRS} )
add_definitions( ${PCL_DEFINITIONS} )
add_executable:編譯可執行程式,指定編譯,好像也可以新增.o檔案
add_executable (helloDemo demo.cxx demo_b.cxx) #將cxx編譯成可執行檔案——
3.設定變數
當PCL安裝包找到之後,就需要新增對應的包含目錄和依賴庫了。我們需要設定幾個相關的變數:
PCL_FOUND: set to 1 if PCL is found, otherwise unset
PCL_INCLUDE_DIRS: set to the paths to PCL installed headers and the dependency headers
PCL_LIBRARIES: set to the file names of the built and installed PCL libraries
PCL_LIBRARY_DIRS: set to the paths to where PCL libraries and 3rd party dependencies reside
PCL_VERSION: the version of the found PCL
PCL_COMPONENTS: lists all available components
PCL_DEFINITIONS: lists the needed preprocessor definitions and compiler flags
測試程式碼pcl_test.cpp如下:
#include <iostream>
#include <pcl/common/common_headers.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/console/parse.h>
int main(int argc, char **argv) {
std::cout << "Test PCL !!!" << std::endl;
pcl::PointCloud<pcl::PointXYZRGB>::Ptr point_cloud_ptr (new pcl::PointCloud<pcl::PointXYZRGB>);
uint8_t r(255), g(15), b(15);
for (float z(-1.0); z <= 1.0; z += 0.05)
{
for (float angle(0.0); angle <= 360.0; angle += 5.0)
{
pcl::PointXYZRGB point;
point.x = 0.5 * cosf (pcl::deg2rad(angle));
point.y = sinf (pcl::deg2rad(angle));
point.z = z;
uint32_t rgb = (static_cast<uint32_t>(r) << 16 |
static_cast<uint32_t>(g) << 8 | static_cast<uint32_t>(b));
point.rgb = *reinterpret_cast<float*>(&rgb);
point_cloud_ptr->points.push_back (point);
}
if (z < 0.0)
{
r -= 12;
g += 12;
}
else
{
g -= 12;
b += 12;
}
}
point_cloud_ptr->width = (int) point_cloud_ptr->points.size ();
point_cloud_ptr->height = 1;
pcl::visualization::CloudViewer viewer ("test");
viewer.showCloud(point_cloud_ptr);
while (!viewer.wasStopped()){ };
return 0;
}
簡單的CMakeList.txt
cmake_minimum_required(VERSION 3.10.2)
project(pcl_test)
//set(PCL_DIR //home/baoyuanjin/pcl-pcl-1.9.1)
find_package(PCL 1.9 REQUIRED )
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable(pcl_test pcl_test.cpp)
target_link_libraries (pcl_test ${PCL_LIBRARIES})
install(TARGETS pcl_test RUNTIME DESTINATION bin)
把pcl_test.cpp和CMakeLists.txt發在同一個資料夾後
執行如下命令
cmake .
make
./pcl_test
可以看到:
相關文章
- 學習筆記:openstack實驗環境安裝筆記
- Ubuntu 18.04 深度學習環境搭建Ubuntu深度學習
- java學習日記-java環境的配置Java
- Python-深度學習-學習筆記(9):在win7環境下的 TensorFlow GPU版安裝Python深度學習筆記Win7GPU
- MSP432安裝與環境配置(ccs) 學習筆記筆記
- Ubuntu18.04深度學習環境配置Ubuntu深度學習
- XMake學習筆記(1):Windows(MSYS2)下MinGW-w64環境搭建和XMake安裝筆記Windows
- Laravel 學習之 Homestead 安裝篇(Windows 環境)LaravelWindows
- 【深度學習】PyTorch CUDA環境配置及安裝深度學習PyTorch
- 大資料基礎學習-1.CentOS-7.0環境安裝大資料CentOS
- golang學習筆記(1):安裝&helloworldGolang筆記
- React Native學習筆記----React Native簡介與環境安裝React Native筆記
- C++學習記錄1C++
- ubuntu環境下安裝perf工具Ubuntu
- 在Ubuntu環境下安裝eclipseUbuntuEclipse
- Ubuntu k80深度學習環境搭建Ubuntu深度學習
- Ubuntu深度學習環境搭建 tensorflow+pytorchUbuntu深度學習PyTorch
- Ubuntu下安裝C++ boost庫UbuntuC++
- 深度學習環境安裝-conda-torch-Jupyter Notebook深度學習
- docker 學習筆記之實戰 lnmp 環境搭建系列 (1) —— docker 介紹與安裝Docker筆記LNMP
- tensorflow學習筆記1——mac開發環境配置筆記Mac開發環境
- PyTorch深度學習入門筆記(一)PyTorch環境配置及安裝PyTorch深度學習筆記
- 學習筆記:MQTT環境搭建筆記MQQT
- Android環境搭建學習筆記Android筆記
- webpack學習筆記(mac環境)Web筆記Mac
- [開源庫學習] Numpy日記 Section.1
- 週末學習日記1
- 前端學習 linux —— 軟體安裝(Ubuntu)前端LinuxUbuntu
- <react學習筆記(1)>認識react和環境搭建React筆記
- 小白學python系列-(1)環境的安裝Python
- 深度學習庫安裝list深度學習
- clickhouse學習(1)-clickhouse安裝解除安裝
- day 1 c++小白學習記錄C++
- RabbitMQ學習筆記-安裝MQ筆記
- Ubuntu 環境安裝 phpunitUbuntuPHP
- 在 Ubuntu18.04 下安裝 LNMP 環境UbuntuLNMP
- ubuntu編譯安裝pcl教程。Ubuntu編譯
- Unity機器學習ML-Agents-release_21環境安裝Unity機器學習