菜鸟跑通doppia(三)

一、更改配置并生成protobuf文件
菜鸟跑通doppia(三) - 小影不爱睡 - 影 的博客 菜鸟跑通doppia(三) - 小影不爱睡 - 影 的博客
本机hostname查找:
菜鸟跑通doppia(三) - 小影不爱睡 - 影 的博客
修改342行
菜鸟跑通doppia(三) - 小影不爱睡 - 影 的博客
 如果不进行本步骤,则在下一步cmake时出现如下错误提示:
菜鸟跑通doppia(三) - 小影不爱睡 - 影 的博客
即:
菜鸟跑通doppia(三) - 小影不爱睡 - 影 的博客
然后,生成protobuf文件:

./generate_protocol_buffer_files.sh

菜鸟跑通doppia(三) - 小影 - 影 的博客
 
否则会出现如下错误:

菜鸟跑通doppia(三) - 小影不爱睡 - 影 的博客
应注意查看protoc的版本以及对应配置是否一致:

protoc --version

如果出现以下错误:
菜鸟跑通doppia(三) - 小影 - 影 的博客
 

vi libprotobuf.conf

/usr/local/lib/protobuf2.5

%!sudo tee %> /dev/null

vi ld.so.conf

/usr/local/lib/opencv2.4.8

%!sudo tee %> /dev/null

sudo ldconfig

菜鸟跑通doppia(三) - 小影 - 影 的博客
  菜鸟跑通doppia(三) - 小影 - 影 的博客
 
可见,/usr/bin的protoc为2.5版本,而/usr/local/bin的版本为3.0版本
远程桌面:
菜鸟跑通doppia(三) - 小影 - 影 的博客
 远程shell,通过在~/.profile中写入以下,否则也是不能获取:

/usr/local/lib/protobuf3.0


菜鸟跑通doppia(三) - 小影 - 影 的博客
 经实践,通过远程shell编译的protobuf文件为3.0版本,不能再远程桌面使用,需要远程桌面2.5版本编译才可。至于为何protobuf会差别,留到以后再分析。

二、编译CPU代码
菜鸟跑通doppia(三) - 小影不爱睡 - 影 的博客
其中,CMakeList.txt中主要内容包括: 
  菜鸟跑通doppia(三) - 小影不爱睡 - 影 的博客
  菜鸟跑通doppia(三) - 小影不爱睡 - 影 的博客
  菜鸟跑通doppia(三) - 小影不爱睡 - 影 的博客
 对应的输出信息如下:
 

cmake -D CMAKE_BUILD_TYPE=RelWithDebInfo .


  菜鸟跑通doppia(三) - 小影不爱睡 - 影 的博客
由于编译opencv时候添加了如下信息:

vim /etc/profile

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

export PATH=$PATH:/usr/local/cuda-7.5/bin

source /etc/profile

此时pkgconfig信息为:
  菜鸟跑通doppia(三) - 小影不爱睡 - 影 的博客
菜鸟跑通doppia(三) - 小影不爱睡 - 影 的博客
 查看其中opencv.pc:

gedti /usr/local/lib/pkgconfig/opencv.pc

菜鸟跑通doppia(三) - 小影不爱睡 - 影 的博客
 然后,执行cmake之前,查询系统CPU、核心、线程数信息:
菜鸟跑通doppia(三) - 小影不爱睡 - 影 的博客
 即:我们实验室的服务器有2个CPU,每个CPU有10个核心,每个核心支持2个线程,共支持40线程并发。
执行:

make -j10

菜鸟跑通doppia(三) - 小影不爱睡 - 影 的博客
注意:
由于opencv 3.0 没有opencv2\legacy\legacy.hpp和opencv2/nonfree/nonfree.hpp,所以需要重新安装和配置OpenCV2.4.x 以及3.x.x。
下载opencv安装包,版本为2.4.8:  

sudo apt-get install libopencv-dev

头文件、静态库和共享库的路径为:
菜鸟跑通doppia(三) - 小影不爱睡 - 影 的博客

  菜鸟跑通doppia(三) - 小影不爱睡 - 影 的博客
对应的opencv.pc位置为:

cat /usr/lib/x86_64-linux-gnu/pkgconfig/opencv.pc

菜鸟跑通doppia(三) - 小影不爱睡 - 影 的博客

其中,添加静态库和共享库过程需要注意
gedit /etc/ld.so.conf
/usr/local/lib/opencv2.4.8
sudo ldconfig或sudo /sbin/ldconfig
sudo gedit /etc/bash.bashrc
export PKG_CONFIG_PATH
=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
菜鸟跑通doppia(三) - 小影 - 影 的博客 
重命名原有的opencv.pc:

sudo mv opencv.pc opencv3.1.0.pc

  此时,cmake中opencv被覆盖为2.4.8版本

设置环境变量信息可参考: http://bbs.csdn.net/topics/370157417
将opencv以及protobuf的文件分开放置,如下:
菜鸟跑通doppia(三) - 小影 - 影 的博客
 
菜鸟跑通doppia(三) - 小影 - 影 的博客
 
菜鸟跑通doppia(三) - 小影 - 影 的博客
   此时,系统存在3个opencv库:
菜鸟跑通doppia(三) - 小影 - 影 的博客

创建一个名为cmake.sh的shell文件,减少重复性指令输入:

#!/bin/bash
#comments
echo "......................oldtlist..................."
ls
if [ -e $'CMakeCache.txt' ]
then
rm CMakeCache.txt
fi
if [ -e $'CMakeFiles' ]
then
rm CMakeFiles -r
fi
if [ -e $'Makefile' ]
then
rm Makefile
fi
if [ -e $'cmake_install.cmake' ]
then
rm cmake_install.cmake
fi
if [ -e $'make.log' ]
then
rm make.log
fi
echo "......................currentlist..................."
ls
echo "......................begin cmake..................."
cmake -D CMAKE_BUILD_TYPE=RelWithDebInfo .
echo "......................after cmake..................."
ls

make -j10 2>&1|tee make.log

可参考: http://www.cnblogs.com/suyang/archive/2008/05/18/1201990.html
                 http://c.biancheng.net/cpp/view/6998.html
                 http://c.biancheng.net/cpp/shell/
 对应输出信息为:
菜鸟跑通doppia(三) - 小影 - 影 的博客

注意,利用相同version的protoc编译 :

./generate_protocol_buffer_files.sh

./cmake.sh


菜鸟跑通doppia(三) - 小影 - 影 的博客
  菜鸟跑通doppia(三) - 小影 - 影 的博客
 
菜鸟跑通doppia(三) - 小影 - 影 的博客
 

#!/bin/bash
#comments
echo "......................oldtlist..................."
ls
if [ -e $'CMakeCache.txt' ]
then
rm CMakeCache.txt
fi
if [ -e $'CMakeFiles' ]
then
rm CMakeFiles -r
fi
if [ -e $'Makefile' ]
then
rm Makefile
fi
if [ -e $'cmake_install.cmake' ]
then
rm cmake_install.cmake
fi
if [ -e $'make.log' ]
then
rm make.log
fi
echo "......................currentlist..................."
ls
echo "......................begin cmake..................."
cmake -D CMAKE_BUILD_TYPE=RelWithDebInfo .
echo "......................after cmake..................."
ls
echo "......................make..................."
make -j10 2>&1|tee make.log

echo "......................stixel_world..................."

OMP_NUM_THREADS=10 OMP_THREAD_LIMIT=10 OMP_DYNAMIC=FALSE
./stixel_world -c fast_uv.config.ini --gui.disable false

./stixel_world -c fast_uv.config.ini --gui.disable false
注意:在CMakeLists.txt中添加protuf库

pkg_check_modules(protobuf REQUIRED protobuf)

link_directories(
${libpng_LIBRARY_DIRS}
${opencv_LIBRARY_DIRS}
${Boost_LIBRARY_DIRS}
${protobuf_LIBRARY_DIRS}
${local_LIBRARY_DIRS}
)
include_directories(
${doppia_root}/libs
${doppia_root}/src
${libpng_INCLUDE_DIRS}
${opencv_INCLUDE_DIRS}
${Boost_INCLUDE_DIRS}
${protobuf_INCLUDE_DIRS}
${local_INCLUDE_DIRS}
)


菜鸟跑通doppia(三) - 小影 - 影 的博客
 
菜鸟跑通doppia(三) - 小影 - 影 的博客
 

终于成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值