一、环境与依赖安装
1. 系统要求
Ubuntu:20.04 / 22.04(推荐 22.04)
架构:x86_64
编译器:gcc/g++ ≥ 9(支持 C++11 及以上)
2. 安装依赖
Terminal运行
sudo apt update
sudo apt install -y gcc g++ make cmake
# Boost(必须,1.55~1.74,Ubuntu22.04默认1.74)
sudo apt install -y libboost-system-dev libboost-thread-dev libboost-log-dev libboost-program-options-dev
# 文档/工具(可选)
sudo apt install -y doxygen graphviz
二、下载 vsomeip 源码
git clone https://github.com/COVESA/vsomeip.git cd vsomeip #
切稳定tag(推荐 3.3.8)
git checkout tags/3.3.8 -b 3.3.8
注意这个需要和Linux版本支持的boost有关,因为linux直接安装的boost版本和vsomeip tag版本相关。
我这里使用的的linux版本是Ubuntu 20.04,使用的是boost版本比较低。
三、编译与安装 vsomeip3
1. 创建 build 目录并编译
mkdir build && cd build # 关键编译选项:开启信号处理(Ctrl+C正常退出)
cmake -DENABLE_SIGNAL_HANDLING=1 -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc) # 多核编译,加速
sudo make install # 安装到 /usr/local
2. 验证安装
查看库文件
ls /usr/local/lib/libvsomeip3*
查看头文件
ls /usr/local/include/vsomeip
刷新动态库缓存
sudo ldconfig
输出类似:
/usr/local/lib/libvsomeip3.so
/usr/local/lib/libvsomeip3.so.3
/usr/local/lib/libvsomeip3.so.3.3.8
四、编译并运行 HelloWorld 示例
1. 编译示例
Terminal运行
# 回到 vsomeip 根目录
cd ..
cd examples/hello_world
mkdir build && cd build
cmake ..
make
2. 单机运行(同一 PC,两个终端)
终端 1:启动 Service Terminal运行
env \
VSOMEIP_CONFIGURATION=../helloworld-local.json \
VSOMEIP_APPLICATION_NAME=hello_world_service \
./hello_world_service
终端 2:启动 Client Terminal运行
env \
VSOMEIP_CONFIGURATION=../helloworld-local.json \
VSOMEIP_APPLICATION_NAME=hello_world_client \
./hello_world_client
3. 结果正常输出
-
Service: plaintext
Service [1234.5678] is available Received message: world -
Client: plaintext
Service [1234.5678] is available Sending message: hello Received message: helloworld