VSOMEIP交叉编译

一、移植boost库

1. 下载boost库源码  

Boost Version Historyicon-default.png?t=N7T8https://www.boost.org/users/history/

 本文使用boost_1_71_0.tar.gz版本。

2. 交叉编译boost库

2.1 解压boost库

junior@junior:~/boost$ tar -zxvf boost_1_71_0.tar.gz

2.2 boost库编译配置

junior@junior:~/boost/boost_1_71_0$ sudo ./bootstrap.sh --with-libraries=atomic,chrono,date_time,filesystem,log,system,thread --prefix=~/boost/boost_1_71_0/boostsdk

with-libraries:指定boost库中需要编译的lib (libboost_atomic.a  libboost_chrono.a  libboost_date_time.a  libboost_filesystem.a  libboost_log.a  libboost_system.a  libboost_thread.a)

prefix:指定安装boost库路径

修改编译工具链为交叉编译工具链:修改project-config.jam文件:

if ! gcc in [ feature.values <toolset> ]
{
    using gcc : : /home/junior/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc ;
}

2.3 编译boost库

junior@junior:~/boost/boost_1_71_0$ ./b2 -j8 cflags=-fPIC cxxflags=-fPIC
当使用boots库中的静态库时,需要加上cflags=-fPIC cxxflags=-fPIC
(编译选项中开启-fPIC选项,确保生成位置无关代码)
The Boost C++ Libraries were successfully built!

The following directory should be added to compiler include paths:

    /home/junior/boost/boost_1_71_0

The following directory should be added to linker library paths:

    /home/junior/boost/boost_1_71_0/stage/lib

2.4 安装boost库

junior@junior:~/boost/boost_1_71_0$ ./b2 install
...updating 9 targets...
common.copy /home/junior/boost/boost_1_71_0/boostsdk/lib/libboost_chrono.a
common.copy /home/junior/boost/boost_1_71_0/boostsdk/lib/libboost_date_time.a
common.copy /home/junior/boost/boost_1_71_0/boostsdk/lib/libboost_filesystem.a
common.copy /home/junior/boost/boost_1_71_0/boostsdk/lib/libboost_regex.a
common.copy /home/junior/boost/boost_1_71_0/boostsdk/lib/libboost_thread.a
common.copy /home/junior/boost/boost_1_71_0/boostsdk/lib/libboost_system.a
common.copy /home/junior/boost/boost_1_71_0/boostsdk/lib/libboost_log_setup.a
common.copy /home/junior/boost/boost_1_71_0/boostsdk/lib/libboost_atomic.a
common.copy /home/junior/boost/boost_1_71_0/boostsdk/lib/libboost_log.a
...updated 9 targets...

二、移植vsomeip

1.下载vsomeip源码

GitHub - COVESA/vsomeip: An implementation of Scalable service-Oriented MiddlewarE over IPAn implementation of Scalable service-Oriented MiddlewarE over IP - COVESA/vsomeipicon-default.png?t=N7T8https://github.com/COVESA/vsomeip本文使用vsomeip 3.1.14.1版本。

2.编译

2.1 创建编译目录

junior@junior:~/vsomeip/$ mkdir build
junior@junior:~/vsomeip/$ cd build

2.3 在build目录下执行如下脚本(编译和安装):

junior@junior:~/vsomeip/build$ sh build.sh

build.sh脚本如下:

#!/bin/sh

#编译工具
COMPILER_CC=/home/junior/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
COMPILER_CXX=/home/junior/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++

#编译选项
COMPILER_FLAGS="-lpthread"

#安装位置
COMPILER_PREFIX=$(pwd)/../someipsdk

#boost编译后的安装位置
BOOST_ROOT=/home/junior/boost/boost_1_71_0/boostsdk

cmake -DCMAKE_INSTALL_PREFIX=$COMPILER_PREFIX \
      -DCMAKE_C_COMPILER=$COMPILER_CC \
      -DCMAKE_CXX_COMPILER=$COMPILER_CXX \
      -DCMAKE_C_FLAGS="$COMPILER_FLAGS" \
      -DCMAKE_CXX_FLAGS="$COMPILER_FLAGS" \
      -DBOOST_ROOT=$BOOST_ROOT \
      -DBoost_INCLUDE_DIR=$BOOST_ROOT/include/boost \
      -DBoost_LIBRARY_DIR=$BOOST_ROOT/lib \
      -DENABLE_SIGNAL_HANDLING=1 \
      -DIAGNOSIS_ADDRESS=0x10 \
      -DENABLE_SESSION_HANDLING_CONFIG=1 \
      -DBoost_USE_STATIC_LIBS=1 \
      ..

make -j24
make install

在~/vsomeip/someipsdk/lib目录下生成vsomeip库文件:


junior@junior:~/vsomeip/someipsdk/lib$ ls -l
total 70612
drwxr-xr-x 3 root root     4096 5月  21 15:45 cmake
lrwxrwxrwx 1 root root       20 5月  21 15:45 libvsomeip3-cfg.so -> libvsomeip3-cfg.so.3
lrwxrwxrwx 1 root root       25 5月  21 15:45 libvsomeip3-cfg.so.3 -> libvsomeip3-cfg.so.3.1.14
-rw-r--r-- 1 root root  7388424 5月  24 10:13 libvsomeip3-cfg.so.3.1.14
lrwxrwxrwx 1 root root       20 5月  21 15:45 libvsomeip3-e2e.so -> libvsomeip3-e2e.so.3
lrwxrwxrwx 1 root root       25 5月  21 15:45 libvsomeip3-e2e.so.3 -> libvsomeip3-e2e.so.3.1.14
-rw-r--r-- 1 root root   886304 5月  24 10:13 libvsomeip3-e2e.so.3.1.14
lrwxrwxrwx 1 root root       19 5月  21 15:45 libvsomeip3-sd.so -> libvsomeip3-sd.so.3
lrwxrwxrwx 1 root root       24 5月  21 15:45 libvsomeip3-sd.so.3 -> libvsomeip3-sd.so.3.1.14
-rw-r--r-- 1 root root 10635072 5月  24 10:13 libvsomeip3-sd.so.3.1.14
lrwxrwxrwx 1 root root       16 5月  21 15:45 libvsomeip3.so -> libvsomeip3.so.3
lrwxrwxrwx 1 root root       21 5月  21 15:45 libvsomeip3.so.3 -> libvsomeip3.so.3.1.14
-rw-r--r-- 1 root root 53379984 5月  24 10:13 libvsomeip3.so.3.1.14
drwxr-xr-x 2 root root     4096 5月  21 15:45 pkgconfig

三、在板子上运行

1.拷贝vsomeip库到开发板 /userdata/someip/someipsdk

2.拷贝boost库到开发板 /userdata/someip/boostsdk

3.将两个库的链接路径添加到环境变量 LD_LIBRARY_PATH中:


root@Dev_board:/userdata# export LD_LIBRARY_PATH=/userdata/someip/someipsdk/lib:$LD_LIBRARY_PATH
root@Dev_board:/userdata# export LD_LIBRARY_PATH=/userdata/someip/boostsdk/lib:$LD_LIBRARY_PATH
root@Dev_board:/userdata# echo $LD_LIBRARY_PATH
/userdata/someip/boostsdk/lib:/userdata/someip/someipsdk/lib:/userdata/someip/boostsdk/lib:/userdata/someip/someipsdk/lib:

  • 25
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值