Ubuntu 18安装librealsense
<p> 写在前面</p><p> 今天看到QQ“那年今日”提醒,三年前的今天我给自己写了一句话:等待机遇的同时不忘继续努力,走太远,别忘了为什么出发。</p>
<p> 对于记录个人生活而言,QQ比微信优秀太多了。可惜膨胀了,加了一大堆小众的功能,用户体验直线下降……额,扯远了。言归正传。</p>
<p> </p>
<p> 因为项目是C++代码写的,之前装的Python版本的realsense库用不上了,只能build一个librealsense。</p>
<p> 由于前些天安装opencv安装怕了,怎么make怎么不行,所以听到partner说安装librealsense和opencv一样难搞时,我怯了。</p>
<p> 可事情总得去做,才有可能做成,对吧?</p>
<p> </p>
<p> 安装之前,确保电脑没有接realsense设备。</p>
<p> 电脑系统:Ubuntu 18.04.4 LTS</p>
<p> 安装方法参考https://github.com/IntelRealSense/librealsense</p>
<p> command:</p>
<div class="cnblogs_code">
<pre>git clone https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">github.com/Microsoft/vcpkg.git</span>
<span style="color: rgba(0, 0, 0, 1)">
cd vcpkg
.</span>/bootstrap-<span style="color: rgba(0, 0, 0, 1)">vcpkg.sh
.</span>/<span style="color: rgba(0, 0, 0, 1)">vcpkg integrate install
.</span>/vcpkg install realsense2</pre>
</div>
<p class="pre"> 执行命令 <span style="color: rgba(0, 0, 0, 1)">./bootstrap-<span style="color: rgba(0, 0, 0, 1)">vcpkg.sh 的时候会下载3个包:cmake、librealsense、ninja。</span></span></p>
<p class="pre"><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 0, 1)"> 下载过程比较慢,也许会失败,报错“过早的文件结束符(EOF)”之类的,此命令多执行几次,就可以下载好了。个中缘由,我归结为网络不好?</span></span></p>
<p class="pre"> </p>
<div class="cnblogs_code">
<pre>ljx@ljx-Lenovo:~/soft/vcpkg$ ./bootstrap-<span style="color: rgba(0, 0, 0, 1)">vcpkg.sh
Extracting cmake...
Extracting cmake... done.
Downloading ninja...
</span>% Total % Received %<span style="color: rgba(0, 0, 0, 1)"> XferdAverage Speed Time Time TimeCurrent
DloadUpload Total Spent LeftSpeed
</span><span style="color: rgba(128, 0, 128, 1)">100</span> <span style="color: rgba(128, 0, 128, 1)">624</span><span style="color: rgba(128, 0, 128, 1)">100</span> <span style="color: rgba(128, 0, 128, 1)">624</span> <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(128, 0, 128, 1)">181</span> <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(128, 0, 128, 1)">0</span>:<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">03</span><span style="color: rgba(128, 0, 128, 1)">0</span>:<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">03</span> --:--:-- <span style="color: rgba(128, 0, 128, 1)">181</span>
<span style="color: rgba(128, 0, 128, 1)">100</span> <span style="color: rgba(128, 0, 128, 1)">99857</span><span style="color: rgba(128, 0, 128, 1)">100</span> <span style="color: rgba(128, 0, 128, 1)">99857</span> <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(128, 0, 128, 1)">4844</span> <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(128, 0, 128, 1)">0</span>:<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">20</span><span style="color: rgba(128, 0, 128, 1)">0</span>:<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">20</span> --:--:-- <span style="color: rgba(128, 0, 128, 1)">10906</span><span style="color: rgba(0, 0, 0, 1)">
Downloading ninja... done.
Extracting ninja...
Extracting ninja... done.
</span>-- The CXX compiler identification <span style="color: rgba(0, 0, 255, 1)">is</span> GNU <span style="color: rgba(128, 0, 128, 1)">7.5</span>.<span style="color: rgba(128, 0, 128, 1)">0</span>
-- Check <span style="color: rgba(0, 0, 255, 1)">for</span> working CXX compiler: /usr/bin/g++-<span style="color: rgba(128, 0, 128, 1)">7</span>
-- Check <span style="color: rgba(0, 0, 255, 1)">for</span> working CXX compiler: /usr/bin/g++-<span style="color: rgba(128, 0, 128, 1)">7</span> -<span style="color: rgba(0, 0, 0, 1)"> works
</span>--<span style="color: rgba(0, 0, 0, 1)"> Detecting CXX compiler ABI info
</span>-- Detecting CXX compiler ABI info -<span style="color: rgba(0, 0, 0, 1)"> done
</span>--<span style="color: rgba(0, 0, 0, 1)"> Detecting CXX compile features
</span>-- Detecting CXX compile features -<span style="color: rgba(0, 0, 0, 1)"> done
</span>-- Detecting the C++ compiler <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> use
</span>-- Detecting the C++ compiler <span style="color: rgba(0, 0, 255, 1)">in</span> use -<span style="color: rgba(0, 0, 0, 1)"> gcc
</span>-- Detecting the C++<span style="color: rgba(0, 0, 0, 1)"> standard library
</span>-- Detecting the C++ standard library - libstdc++
-- Detecting how to use the C++<span style="color: rgba(0, 0, 0, 1)"> filesystem library
</span>-- Detecting how to use the C++ filesystem library - <experimental/filesystem> with -lc++<span style="color: rgba(0, 0, 0, 1)">fs
</span>-- Looking <span style="color: rgba(0, 0, 255, 1)">for</span> C++<span style="color: rgba(0, 0, 0, 1)"> include pthread.h
</span>-- Looking <span style="color: rgba(0, 0, 255, 1)">for</span> C++ include pthread.h -<span style="color: rgba(0, 0, 0, 1)"> found
</span>--<span style="color: rgba(0, 0, 0, 1)"> Performing Test CMAKE_HAVE_LIBC_PTHREAD
</span>-- Performing Test CMAKE_HAVE_LIBC_PTHREAD -<span style="color: rgba(0, 0, 0, 1)"> Failed
</span>-- Check <span style="color: rgba(0, 0, 255, 1)">if</span> compiler accepts -<span style="color: rgba(0, 0, 0, 1)">pthread
</span>-- Check <span style="color: rgba(0, 0, 255, 1)">if</span> compiler accepts -pthread -<span style="color: rgba(0, 0, 0, 1)"> yes
</span>--<span style="color: rgba(0, 0, 0, 1)"> Found Threads: TRUE
</span>--<span style="color: rgba(0, 0, 0, 1)"> Configuring done
</span>--<span style="color: rgba(0, 0, 0, 1)"> Generating done
</span>-- Build files have been written to: /home/ljx/soft/vcpkg/toolsrc/<span style="color: rgba(0, 0, 0, 1)">build.rel
[</span><span style="color: rgba(128, 0, 128, 1)">0</span>/<span style="color: rgba(128, 0, 128, 1)">2</span>] Re-<span style="color: rgba(0, 0, 0, 1)">checking globbed directories...
[</span><span style="color: rgba(128, 0, 128, 1)">79</span>/<span style="color: rgba(128, 0, 128, 1)">79</span><span style="color: rgba(0, 0, 0, 1)">] Linking CXX executable vcpkg
Telemetry
</span>---------<span style="color: rgba(0, 0, 0, 1)">
vcpkg collects usage data </span><span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> order to help us improve your experience.
The data collected by Microsoft </span><span style="color: rgba(0, 0, 255, 1)">is</span><span style="color: rgba(0, 0, 0, 1)"> anonymous.
You can opt</span>-<span style="color: rgba(0, 0, 255, 1)">out</span> of telemetry by re-running the bootstrap-vcpkg script with -<span style="color: rgba(0, 0, 0, 1)">disableMetrics,
passing </span>--disable-<span style="color: rgba(0, 0, 0, 1)">metrics to vcpkg on the command line,
or by setting the VCPKG_DISABLE_METRICS environment variable.
Read more about vcpkg telemetry at docs</span>/about/<span style="color: rgba(0, 0, 0, 1)">privacy.md
ljx@ljx</span>-Lenovo:~/soft/vcpkg$ ./<span style="color: rgba(0, 0, 0, 1)">vcpkg integrate install
Applied user</span>-wide integration <span style="color: rgba(0, 0, 255, 1)">for</span> <span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)"> vcpkg root.
CMake projects should use: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">-DCMAKE_TOOLCHAIN_FILE=/home/ljx/soft/vcpkg/scripts/buildsystems/vcpkg.cmake</span><span style="color: rgba(128, 0, 0, 1)">"</span></pre>
</div>
<p class="pre"> </p>
<p> 命令执行过程如上图,应该是没问题的。</p>
<p class="pre"> 但我在执行./vcpkg install realsense2的时候报错:</p>
<div class="cnblogs_code">
<pre>-- Configuring x64-linux-dbg<br>-- Configuring x64-linux-rel<br>CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:72 (message):<br> Command failed: /home/ljx/soft/vcpkg/downloads/tools/cmake-3.17.2-linux/cmake-3.17.2-Linux-x86_64/bin/cmake /home/ljx/soft/vcpkg/buildtrees/realsense2/src/93b7ff8597-4347a45ee5.clean -DBUILD_WITH_TM2=OFF -DENFORCE_METADATA=ON -DBUILD_WITH_OPENMP=OFF -DBUILD_UNIT_TESTS=OFF -DBUILD_WITH_STATIC_CRT=0 -DBUILD_OPENNI2_BINDINGS=OFF -DOPENNI2_DIR=/home/ljx/soft/vcpkg/installed/x64-linux/include/openni2 -DCMAKE_MAKE_PROGRAM=/home/ljx/soft/vcpkg/downloads/tools/ninja-1.10.0-linux/ninja -DCMAKE_SYSTEM_NAME=Linux -DBUILD_SHARED_LIBS=OFF -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=/home/ljx/soft/vcpkg/scripts/toolchains/linux.cmake -DVCPKG_TARGET_TRIPLET=x64-linux -DVCPKG_SET_CHARSET_FLAG=ON -DVCPKG_PLATFORM_TOOLSET=external -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE -DCMAKE_VERBOSE_MAKEFILE=ON -DVCPKG_APPLOCAL_DEPS=OFF -DCMAKE_TOOLCHAIN_FILE=/home/ljx/soft/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON -DVCPKG_CXX_FLAGS= -DVCPKG_CXX_FLAGS_RELEASE= -DVCPKG_CXX_FLAGS_DEBUG= -DVCPKG_C_FLAGS= -DVCPKG_C_FLAGS_RELEASE= -DVCPKG_C_FLAGS_DEBUG= -DVCPKG_CRT_LINKAGE=dynamic -DVCPKG_LINKER_FLAGS= -DVCPKG_TARGET_ARCHITECTURE=x64 -DCMAKE_INSTALL_LIBDIR:STRING=lib -DCMAKE_INSTALL_BINDIR:STRING=bin -D_VCPKG_ROOT_DIR=/home/ljx/soft/vcpkg -D_VCPKG_INSTALLED_DIR=/home/ljx/soft/vcpkg/installed -DVCPKG_MANIFEST_INSTALL=OFF -DBUILD_EXAMPLES=OFF -DBUILD_GRAPHICAL_EXAMPLES=OFF -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/ljx/soft/vcpkg/packages/realsense2_x64-linux<br> Working Directory: /home/ljx/soft/vcpkg/buildtrees/realsense2/x64-linux-rel<br>/home/ljx/soft/vcpkg/buildtrees/realsense2/x64-linux-<span style="color: rgba(0, 0, 0, 1)">rel
Error code: </span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
See logs </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> more information:
</span>/home/ljx/soft/vcpkg/buildtrees/realsense2/config-x64-linux-rel-<span style="color: rgba(0, 0, 255, 1)">out</span><span style="color: rgba(0, 0, 0, 1)">.log
</span>/home/ljx/soft/vcpkg/buildtrees/realsense2/config-x64-linux-rel-<span style="color: rgba(0, 0, 0, 1)">err.log
Call Stack (most recent call first):
scripts</span>/cmake/vcpkg_configure_cmake.cmake:<span style="color: rgba(128, 0, 128, 1)">319</span><span style="color: rgba(0, 0, 0, 1)"> (vcpkg_execute_required_process)
ports</span>/realsense2/portfile.cmake:<span style="color: rgba(128, 0, 128, 1)">29</span><span style="color: rgba(0, 0, 0, 1)"> (vcpkg_configure_cmake)
scripts</span>/ports.cmake:<span style="color: rgba(128, 0, 128, 1)">79</span><span style="color: rgba(0, 0, 0, 1)"> (include)
Error: Building package realsense2:x64</span>-<span style="color: rgba(0, 0, 0, 1)">linux failed with: BUILD_FAILED
Please ensure you</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">re using the latest portfiles with `.\vcpkg update`, then</span>
submit an issue at https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">github.com/Microsoft/vcpkg/issues including:</span>
Package: realsense2:x64-<span style="color: rgba(0, 0, 0, 1)">linux
Vcpkg version: </span><span style="color: rgba(128, 0, 128, 1)">2020.06</span>.<span style="color: rgba(128, 0, 128, 1)">15</span>-<span style="color: rgba(0, 0, 0, 1)">unknownhash
Additionally, attach any relevant sections </span><span style="color: rgba(0, 0, 255, 1)">from</span> the log files above.</pre>
</div>
<p> 我复制保留了执行<span style="color: rgba(0, 0, 0, 1)">./bootstrap-<span style="color: rgba(0, 0, 0, 1)">vcpkg.sh 的时候下载的3个包:cmake、librealsense、ninja,(在vcpkg/downloads里面),清除vcpkg文件夹,</span></span></p>
<p><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 0, 1)"> 重新按那几条指令顺序走一遍,在执行<span style="color: rgba(0, 0, 0, 1)">./bootstrap-<span style="color: rgba(0, 0, 0, 1)">vcpkg.sh </span></span>之前把三个下好的包放回对应的文件夹(纯粹是因为这样不用漫长的等待),</span></span></p>
<p><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 0, 1)"> 好了,依旧是最后一步出错。</span></span></p>
<p> </p>
<p><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 0, 1)"> 然后我想能不能不用vcpkg这个C++包管理器安装,毕竟我已经通过它下载好了librealsense。</span></span></p>
<p><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 0, 1)"> 于是我找到了https://github.com/IntelRealSense/librealsense/blob/v2.38.0/doc/installation.md,看到了Building librealsense2 SDK,看到了cmake……</span></span></p>
<p><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 0, 1)"> 接着<span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 0, 1)">解压</span></span>刚才下载好的IntrlRealSense-librealsense</span></span></p>
<p><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 0, 1)"> 一顿操作:</span></span></p>
<p> </p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">mkdir build
cd build
cmake ..</span>/ -DCMAKE_BUILD_TYPE=<span style="color: rgba(0, 0, 0, 1)">Release
sudo make uninstall </span>&& make clean && make && sudo make install</pre>
</div>
<p> </p>
<p> 等待一段时间,输入sudo密码继续安装完成,就好了</p>
<p> </p>
<p><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 0, 1)"> <img src="https://img2020.cnblogs.com/blog/1732705/202008/1732705-20200804161629732-1249573012.png"></span></span></p>
<p> </p>
<p> 项目成功include啦!</p>
<p> 至此,librealsense安装完成。</p>
<p> </p>
<p> 你以为的困难,不一定就真的难。</p><br><br>
来源:https://www.cnblogs.com/ljxislearning/p/13434204.html
頁:
[1]