ubuntu16.04编译segmap
环境依赖:PCL1.9 tensorflow1.8.0 ros (pcl1.9 及 ros自行配置 ros配置时推荐用国内源)
2020年最近rosdep不易成功具体方法需要 sudo gedit /etc/resolv.conf
删掉其中所有内容替换为
nameserver 8.8.8.8 #google域名服务 nameserver 8.8.4.4 #google域名服务器
下面开始正题
一、下载源码及虚拟环境
$ sudo apt-get install python-wstool doxygen python3-pip python3-dev python-virtualenv dh-autoreconf
$ cd ~/segmap_ws $ catkin init $ catkin config --merge-devel $ catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release $ cd src $ git clone https://github.com/ethz-asl/segmap.git $ wstool init $ wstool merge segmap/dependencies.rosinstall $ wstool update $ virtualenv ~/segmappyenv $ source ~/segmappyenv/bin/activate (segmappyenv)$ pip install --upgrade pip (segmappyenv)$ pip install catkin_pkg empy pyyaml
二、配置tensorflow
1.首先下载nvidia驱动 sudo add-apt-repository ppa:graphics-drivers/ppa 然后 sudo apt update 然后进入ubuntu设置安装某版本驱动
注:cuda9.0需390以上nvidia驱动版本
2.安装cuda
tensorflow1.8对应的是cuda9.0(从官网可以查的对应版本)下载.run文件 安装时ctrl+c阅读完成告知,然后accept 第一个选项是否安装nvidia驱动Y/N 此时选择N 后面的samples也不建议安装(实在用不到)最后就是
sudo gedit ~/.bashr
然后 复制粘贴以下内容 保存
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64 export PATH=$PATH:/usr/local/cuda-9.0/bin
然后
source ~/.bashrc
然后
nvcc --version 查看是否安装成功
3.安装cudnn
下载完source文件直接extra(解压缩)到home目录下然后home下
sudo cp -a cuda/include/cudnn.h /usr/local/cuda/include/ sudo cp -a cuda/lib64/libcudnn* /usr/local/cuda/lib64/
查看cudnn版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
然后同样跟3一样
sudo gedit ~/.bashr
然后 复制粘贴以下内容 保存
然后
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-9.0
source ~/.bashrc
4.编译tensorflow
此处需注意、此处需注意、此处需注意
由segmap官网知ubuntu16.04 ubuntu18必须得通过bazel编译
此处我用的是bazel0.10.0 .sh文件 下载后
./bazel-<version>-installer-linux-x86_64.sh --user 注意--user否则没法安装
同样的还是得写一下环境文件
sudo gedit ~/.bashr
然后 复制粘贴以下内容 保存
然后
export PATH="$PATH:$HOME/bin"
source ~/.bashrc
然后下载tensorflow 1.8.0的源码
接下来在虚拟环境中操作。。也就是说前面需要看到(segmappyenv)source ~/segmappyenv/bin/activate
然后cd到tensorflow文件下
(segmappyenv)$./configure 除了是否需要cuda支持其余全部默认即可(bazel0.10.0默认用上面的cuda9.0cudnn7.0) (segmappyenv)$ bazel build --config=opt --define framework_shared_object=true tensorflow:libtensorflow_cc.so (这也是github官网推荐的代码) 编译时间很长..
三、配置其他环境
$sudo apt-get install autoconf automake libtool $ git clone https://github.com/doxygen/doxygen.git $ cd doxygen $ mkdir build $ cd build $ cmake .. $ make -j4(几核就写几我是四核,可加快速度) $ sudo make install
四、开始配置
$ source ~/segmappyenv/bin/activate (segmappyenv)$ cd ~/segmap_ws (segmappyenv)$ catkin build tensorflow_ros_cpp -DFORCE_TF_PIP_SEARCH="OFF" -DFORCE_TF_BAZEL_SEARCH="ON"
编译后只有1 succeed 31skiped不要疑虑就是这样的因为你只编译了一个catkin
完成后复制 ~/tensorflow/bazel-bin/tensorflow/libtensorflow_framework.so 到 ~/segmap_ws/devel/lib中 不然容易出错 这是我在github中自己的问题:我的问题
(segmappyenv)$ cd ~/segmap_ws (segmappyenv)$ catkin build segmapper
最后还是附一张编译成功的图
后期总结建图方法
- ubuntu16.04编译seetaface
- Ubuntu16.04编译VASP5.4.1详细过程
- Ubuntu16.04编译安装OpenCV3.20
- ubuntu16.04 64bit编译android5.1错误
- Ubuntu 16.04[64bit]嵌入式交叉编译环境arm-linux-gcc搭建过程图解
- Ubuntu16.04 上安装openJDK7 编译AndroidM环境
- Ubuntu16.04交叉编译树莓派Linux-Kernel并打RT-Patch
- ubuntu16.04+cuda8.0+cudnn5.1+caffe------caffe安装与编译
- ubuntu16.04编译android6_r1源码绕坑贴
- [Wiki]Ubuntu16.04+CUDA8.0编译Caffe过程
- 源码编译OpenJdk 8,Netbeans调试Java原子类在JVM中的实现(Ubuntu 16.04)
- Ubuntu 16.04(64bit)嵌入式交叉编译环境搭建arm-linux-gcc使用
- Ubuntu16.04 Java编译环境
- 在ubuntu-16.04系统中安装arm-linux-gcc-4.3.2交叉编译工具
- ubuntu16.04环境下使用Arduino IDE编译和烧写
- 【Linux】Linux系统(Ubuntu 16.04 LTS)下opencv-3.4.0离线编译及配置
- ceres库编译安装ubuntu16.04
- ubuntu 16.04 编译caffe出错:glog/logging.h: No such file or directory
- ubuntu16.04让内核编译一次过的方法
- ubuntu16.04 编译freeswitch1.9的视频mod_av模块