[关闭]
@aod321 2019-01-07T06:31:59.000000Z 字数 1595 阅读 200

ML16 SDK 交叉编译与移植使用手册

ML16 激光雷达 SDK 交叉编译 ARM移植


说明

文件目录结构如下:

  1. ML16SDK-AutoBuild
  2. README.md #说明文档
  3. └───ML16SDK #SDK工程目录
  4. CMakeLists.txt
  5. compile.sh #编译脚本
  6. └───src
  7. ├── CMakeLists.txt
  8. ├── ML16Lidar.cpp
  9. └── ML16lidar.h
  10. └───toolchains #工具链切换
  11. ├── arm-linux-toolChain.cmake
  12. └── local-toolChain.cmake
  13. └───boost_lib
  14. instal-boost.sh #预编译boost库安装脚本
  15. └───armhf #采用arm-linux-gnueabihf-g++编译的boost
  16. └───boost
  17. └───...
  18. └───x86 #采用linux-x86-64-gcc编译的boost(一般PC)
  19. └───include
  20. └───...
  21. └───lib
  22. └───...
  23. |
  24. └───DEMO #SDK示例程序目录
  25. └───asyncrecv_printframe #异步接收方式使用示例
  26. CMakeLists.txt
  27. compile.sh #编译脚本
  28. └───src #源码目录
  29. | ...
  30. └───CMakeLists.txt
  31. └───toolchains #工具链切换
  32. └───...

安装arm交叉编译工具链

  1. sudo apt-get install gcc-arm-linux-gnueabihf
  2. sudo apt-get install g++-arm-linux-gnueabihf

安装boost库

本项目采用预编译的方式,利用install-boost.sh脚本根据不同架构安装交叉编译好的boost库.

  1. cd boost_lib/
  2. ./install-boost.sh x86 #安装x86架构的boost库
  3. ./install-boost.sh arm #安装交叉编译的arm架构

关于如何交叉编译boost库的详细指南请看Boost交叉编译移植ARM技术文档

本地编译SDK和DEMO

  1. #本地编译SDK
  2. cd ~/ML16SDK-AutoBuild/
  3. cd ML16SDK/
  4. ./compile.sh local
  5. #编译完成后自动安装ML16库到/usr/local目录下
  6. #本地编译DEMO
  7. cd ~/ML16SDK-AutoBuild/
  8. cd DEMO/asyncrecv_printframe/
  9. ./compile.sh local
  10. #编译完成后可在asyncrecv_printframe/localbin/目录下找到可执行文件

交叉编译SDK和DEMO

  1. #本地编译SDK
  2. cd ~/ML16SDK-AutoBuild/
  3. cd ML16SDK/
  4. ./compile.sh arm
  5. #编译完成后自动安装ML16库到/opt/ML16目录下
  6. #本地编译DEMO
  7. cd ~/ML16SDK-AutoBuild/
  8. cd DEMO/asyncrecv_printframe/
  9. ./compile.sh arm
  10. #编译完成后可在asyncrecv_printframe/arm-bin/目录下找到可执行文件

如何移植到ARM板

方法1.在PC上交叉编译后上传到ARM宿主机

1.将本机/opt目录下库文件拷贝到arm运行的linux系统同目录下

  1. local(PC) target(ARM)
  2. /opt/boost --> /opt/boost
  3. /opt/ML16 --> /opt/ML16

2. 将DEMO程序可执行文件复制到ARM宿主机执行即可

  1. local(PC) target(ARM)
  2. /arm-bin/testprint --> path/testprint
  3. ./testprint

方法2.直接在ARM宿主机上采用本地编译的方式(编译速度可能较慢)

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注