树莓派4b+部署realsense的踩坑问题小记(undefined reference of “
本文并不基于ubuntu部署,而是基于官方的raspbianOS部署
0.全局代理
如果你有魔法并且有Clash的话,建议在clash上启用AllowLAN,配置默认端口7890,然后在树莓派上配置全局代理:
export http_proxy=”http://ip:port”export https_proxy=”http://ip:port”
如果要取消全局代理:
unset http_proxyunset https_proxy
设置git代理:
git config –global http.proxy ‘http://ip:port’git config –global https.proxy ‘http://ip:port’
取消git代理:
git config –global –unset http.proxygit config –global –unset https.proxy 1.扩大内存
默认的swap分区太小,编译时容易卡死,并且不会报错,所以首先要扩大swap分区。同时,可以用带有资源监控的SSH客户端(比如FinalShell)来操作。
free -mcd /opt/ && sudo mkdir swap_2g && cd swap_2gsudo touch swapsudo dd if=/dev/zero of=/opt/swap_2g/swap bs=1024 count=2048000sudo mkswap /opt/swap_2g/swapsudo swapon /opt/swap_2g/sawpsudo echo “/opt/swap_temp/sawp /swap swap defaults 0 0” >> /etc/fstab 2.安装依赖+切换编译器 sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgradesudo apt-get install -y git cmake libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-devsudo apt-get install -y libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev
笔者在安装上述依赖后,编译会遇到undefined reference of “__atomic_load_8″一系列报错:
经过研究发现相关的库用到了原子操作(atomic库),该库在C++11中正式被支持,且需要加入编译选项 − l a t o m i c -latomic −latomic。
而树莓派默认GCC版本过低,是无法编译的。因此要安装需要切换默认编译器为Clang来编译(不推荐交叉编译,建议直接用最新的clang来编译)。
安装Clang:
sudo apt-get install llvmsudo apt-get install clang
切换编译器:
sudo update-alternatives –config c++
在该页面选择Clang即可:
There are 2 choices for the alternative c++ (providing /usr/bin/c++). Selection Path Priority Status————————————————————* 0 /usr/bin/g++ 20 auto mode1 /usr/bin/clang++ 10 manual mode2 /usr/bin/g++ 20 manual mode Press enter to keep the current choice[*], or type selection number: 1 3.下载SDK源码并编译安装
下载SDK:
git clone https://github.com/IntelRealSense/librealsense.git
编译准备:
cd librealsensemkdir build && cd buildcmake ../ -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=true -DFORCE_RSUSB_BACKEND=ON -DBUILD_WITH_TM2=false -DIMPORT_DEPTH_CAM_FW=false -DCMAKE_EXE_LINKER_FLAGS=”-latomic”
注意,一定要加-DCMAKE_EXE_LINKER_FLAGS=”-latomic”选项。
编译安装:
sudo make uninstall && make clean && make -j2 && sudo make install -2
编译安装完成后,移除摄像头设备,然后执行:
sudo ./scripts/setup_udev_rules.sh
注意该命令是在克隆的仓库根目录下执行的,或者直接找到script目录来执行脚本。
至此,安装完毕。
开启viewer的命令:
realsense-viewer