tensorflow源码编译教程_ubuntu16.04编译SegMap过程中遇到的问题和解决方法

代码链接:https://github.com/ethz-asl/segmap.git

参考教程链接:ubuntu16.04编译segmap - Lachiven - 博客园

官方教程和参考教程具有很重要的意义,为了下一次依然能够完整编译,记录如下:

使用环境 ubuntu16.04、ros Kinect

1、安装编译过程中所需要的依赖包:

$sudo apt-get install python-wstool doxygen python3-pip python3-dev python-virtualenv dh-autoreconf

2、设置工作空间

$ mkdir -p ~/segmap_ws/src
$ cd ~/segmap_ws
$ catkin init
$ catkin config --merge-devel
$ catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release

这个过程中会遇到catkin命令不存在的现象,主要因为较新版本的ros使用catkinmake命令,解决方法(catkin_make其实也ok)

# 安装catkin
$ sudo apt-get update
$ sudo apt-get install python-catkin-tools

3、使用wstool获取依赖

$ cd src
$ git clone https://github.com/ethz-asl/segmap.git
$ wstool init
$ wstool merge segmap/dependencies.rosinstall
$ wstool update

4、编译tensorflow

#创建虚拟环境
$ virtualenv ~/segmappyenv
$ source ~/segmappyenv/bin/activate
(segmappyenv)$ pip install --upgrade pip
(segmappyenv)$ pip install catkin_pkg empy pyyaml

对于ubuntu16.04使用需要对tensorflow进行编译,使用cpu版本会导致后面速度较慢。

安装tensorflow的过程涉及到bazel的安装,安装tensorflow-1.8使用的为bazel1.1版本

安装bazel

https://github.com/bazelbuild/bazel/releases下载对应的版本

chmod +x bazel-0.16.1-installer-linux-x86_64.sh
./bazel-<version>-installer-linux-x86_64.sh --user  
#写一下环境文件
sudo gedit ~/.bashr
#复制粘贴以下内容 保存
export PATH="$PATH:$HOME/bin"
source ~/.bashrc

tensorflow的安装(采用链接中的教程)

接下来在虚拟环境中操作。。也就是说前面需要看到(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官网推荐的代码)
编译时间很长..

5、配置其他环境

$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

6、安装Protocol Buffers-3.5,否则在后期将会报错

https://github.com/protocolbuffers/protobuf/releases/tag/v3.5.0

下载完之后

./configure
make
make checksudo 
make install
protoc --version

7、编译tensorflow_ros_cpp

$ cd ~/segmap_ws
$ catkin build tensorflow_ros_cpp

这个过程可能报错,主要因为没能找到tensorflow包的位置

设置 CMakeLists.txt 内 tensorflow 的路径
修改:

set(TF_BAZEL_LIBRARY “CATKIN_DEVEL_PREFIX/…/libtensorflow_cc.so” CACHE STRING “Path to the bazel-compiled Tensorflow C++ library”)
set(TF_BAZEL_SRC_DIR “${CATKIN_DEVEL_PREFIX}/…/tensorflow-include-base” CACHE STRING “Path to the Tensorflow sources directory”)
内的 tensorflow 的库路径和源码路径为上步骤确定的路径
#例如
set(TF_BAZEL_LIBRARY “/home/ubuntu/tensorflow-r1.8/bazel-bin/tensorflow/libtensorflow_cc.so” CACHE STRING “Path to the bazel-compiled Tensorflow C++ library”)
set(TF_BAZEL_SRC_DIR “/home/ubuntu/tensorflow-r1.8” CACHE STRING “Path to the Tensorflow sources directory”)

中间可能会涉及到enum34错误

使用pip进行安装

8、完成后复制 ~/tensorflow/bazel-bin/tensorflow/libtensorflow_framework.so 到 ~/segmap_ws/devel/lib中 不然容易出错

9、部分展示

031d28aed8b25ba20da116d83f8d1f7a.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值