给新手----编译VSOMEIP保姆级别教程

这篇具有很好参考价值的文章主要介绍了给新手----编译VSOMEIP保姆级别教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:当你学习了SOMEIP理论基础后,一定很希望上手实操一波吧,本文档以SOMEIP协议里比较成熟的VSOMEIP开源框架为例,带你从0到1实现开源框架的下载到上手,坐稳啦,开车!!!!

1. 下载源码

在linux终端输入或者windows的minGW里输入:

 git clone Gitee 极速下载/vsomeipGitee 极速下载/vsomeiphttps://gitee.com/mirrors/vsomeip.git

完成所有编译工作后的目录结构如下:

给新手----编译VSOMEIP保姆级别教程

 2. 必要包的安装:

由于linux版本之间有差异性,难以全部罗列,统一以ubuntu20.04举例说明:

请敲以下命令完成boost以及其他

代码

sudo apt-get install libboost-system-dev libboost-thread-dev libboost-log-dev

sudo apt-get install asciidoc source-highlight doxygen graphviz

sudo apt-get install gcc g++ make

3. 编译vsomeip

进入vsomeip路径下。编译vsomeip库,请执行以下命令:

代码

mkdir build

 

cd build

 

cmake ..

 

make

 

sudo make install

完成所有工作后的记录如下:

给新手----编译VSOMEIP保姆级别教程

4. 编译官方提供的helloworld测试案例(熟手跳过)

(可以参考官方关于helloworld案例的readme提示:../vsomeip/examples/hello_world/readme)

请cd 到/examples/hello_world路径下:执行同样的编译命令

代码

mkdir build

 

cd build

 

cmake ..

 

make

编译过程如下图所示:

给新手----编译VSOMEIP保姆级别教程

 5. 执行helloworld测试用例

5.1 请注意,官方helloworld教程关于“Running Hello World Example”部分有误,需要按照以下方式修改:

把helloworld目录下的helloworld-local.json 复制到build目录里去。

给小白的提示:假设您现在处以 /vsomeip/examples/hello_world/build 路径下,请执行以下代码:

代码

cp ../helloworld-local.json ./

复制完成后helloworld的build应该和我一样。如下图所示:

给新手----编译VSOMEIP保姆级别教程

5.2 开两个终端,执行程序:(直接复制粘贴代码)

终端1运行 service端:
env VSOMEIP_CONFIGURATION=./helloworld-local.json \
VSOMEIP_APPLICATION_NAME=hello_world_service \
./hello_world_service

终端2运行 client端:
env VSOMEIP_CONFIGURATION=./helloworld-local.json \
VSOMEIP_APPLICATION_NAME=hello_world_client \
./hello_world_client

Tips:如果提示:Configuration module could not be loaded!请在../vsomeip/examples/hello_world/build路径下输入以下命令完成链接工作,再执行上述执行命令。

代码

sudo ldconfig

5.3 测试结果:

服务端:

2023-03-16 11:14:47.394718 [info] vSomeIP 3.3.0 | (default)

2023-03-16 11:14:57.400489 [info] vSomeIP 3.3.0 | (default)

2023-03-16 11:14:58.263600 [info] Application/Client 5555 is registering.

2023-03-16 11:14:58.264118 [info] Client [4444] is connecting to [5555] at /tmp/vsomeip-5555

2023-03-16 11:14:58.268696 [info] REGISTERED_ACK(5555)

2023-03-16 11:14:58.376506 [info] REQUEST(5555): [1111.2222:255.4294967295]

2023-03-16 11:14:58.387110 [info] RELEASE(5555): [1111.2222]

2023-03-16 11:14:58.388448 [info] Application/Client 5555 is deregistering.

2023-03-16 11:14:58.399715 [info] receive_cbk local_uds_client_endpoint: connection_reset/EOF/bad_descriptor

2023-03-16 11:14:58.496182 [info] Client [4444] is closing connection to [5555]

2023-03-16 11:15:03.385937 [info] STOP OFFER(4444): [1111.2222:0.0] (true)

2023-03-16 11:15:03.387130 [info] Stopping vsomeip application "hello_world_service" (4444).

客户端:

私人信息脱敏/someipCode/vsomeip/examples/hello_world/build$ env VSOMEIP_CONFIGURATION=./helloworld-local.json \

> VSOMEIP_APPLICATION_NAME=hello_world_client \

> ./hello_world_client

2023-03-16 11:14:58.257083 [info] Using configuration file: "./helloworld-local.json".

2023-03-16 11:14:58.257952 [info] Parsed vsomeip configuration in 0ms

2023-03-16 11:14:58.258019 [info] Configuration module loaded.

2023-03-16 11:14:58.258052 [info] Initializing vsomeip application "hello_world_client".

2023-03-16 11:14:58.258194 [info] Instantiating routing manager [Proxy].

2023-03-16 11:14:58.258368 [info] Client [5555] is connecting to [0] at /tmp/vsomeip-0

2023-03-16 11:14:58.258511 [info] Application(hello_world_client, 5555) is initialized (11, 100).

2023-03-16 11:14:58.258655 [info] Starting vsomeip application "hello_world_client" (5555) using 2 threads I/O nice 255

2023-03-16 11:14:58.259440 [info] shutdown thread id from application: 5555 (hello_world_client) is: 7f516931d700 TID: 78921

2023-03-16 11:14:58.260555 [info] io thread id from application: 5555 (hello_world_client) is: 7f5169bc0000 TID: 78919

2023-03-16 11:14:58.260802 [info] io thread id from application: 5555 (hello_world_client) is: 7f5168b1c700 TID: 78922

2023-03-16 11:14:58.262858 [info] create_local_server: Listening @ /tmp/vsomeip-5555

2023-03-16 11:14:58.263042 [info] Client 5555 (hello_world_client) successfully connected to routing  ~> registering..

2023-03-16 11:14:58.263117 [info] Registering to routing manager @ vsomeip-0

2023-03-16 11:14:58.263629 [info] main dispatch thread id from application: 5555 (hello_world_client) is: 7f5169b1e700 TID: 78920

2023-03-16 11:14:58.268148 [info] Application/Client 5555 (hello_world_client) is registered.

2023-03-16 11:14:58.378331 [info] ON_AVAILABLE(5555): [1111.2222:0.0]

Sending: World

2023-03-16 11:14:58.379275 [info] Client [5555] is connecting to [4444] at /tmp/vsomeip-4444

Received: Hello World

2023-03-16 11:14:58.386383 [info] Stopping vsomeip application "hello_world_client" (5555).

2023-03-16 11:14:58.389704 [info] Application/Client 5555 (hello_world_client) is deregistered.

2023-03-16 11:14:58.390784 [info] Client [5555] is closing connection to [4444]文章来源地址https://www.toymoban.com/news/detail-502808.html

到了这里,关于给新手----编译VSOMEIP保姆级别教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 零基础入门AI绘画神器Stable Diffusion保姆级别教程!!小白必收藏!!!

    手把手教你入门绘图超强的AI绘画程序Stable Diffusion,用户只需要输入一段图片的文字描述,即可生成精美的绘画。给大家带来了全新Stable Diffusion保姆级教程资料包(文末可获取) 1. 前言 目前市面上比较权威,并能用于工作中的 AI 绘画软件其实就两款。一个叫 Midjourney(简称

    2024年01月17日
    浏览(54)
  • Windows 11 安卓子系统安裝教程,保姆级别一看就会!

    前言 模拟器与win11内置的安卓子系统相比,那是一个天一个地,比模拟器香多了。windows 11 自带安卓子系统发布已经有一段时间了,但是目前并没有开放给中国用户,因此、下面这个教程,教大家如何在windows 11上安装安卓子系统,安装子系统后,在windows电脑上直接就能安装安

    2024年02月13日
    浏览(55)
  • 快手极速版薅羊毛+脚本+抓包教程+环境变量配置 保姆级别教程 (2022/5/13 更新)

    快手极速版薅羊毛是基于青龙面板的 首先你要有自己的青龙面板 没有青龙面板的可以看下我以前的文章,很简单的(有服务器的话2分钟搭建完毕) 那么下面开始进入正题! 复制上面这段代码,打开你的青龙面板 然后填写名称 命令 以及时间 名称 随意填 命令 填写 上面那段

    2024年02月04日
    浏览(126)
  • Anaconda保姆级安装配置教程(新手必看)

    本人深度学习入门小白,创建了一个 关于深度学习环境配置的专栏,包括从anaconda到cuda到pytorch的一系列操作 ,专栏中的另外两篇文章如下: 用人话讲解深度学习中CUDA,cudatookit,cudnn和pytorch的关系_江江ahh的博客-CSDN博客_cudatookit 在conda虚拟环境中配置cuda+cudnn+pytorch深度学习

    2024年01月18日
    浏览(43)
  • Python电商爬虫保姆级入门教程(纯新手向)

    图灵Python课堂 长沙图灵教育于2001年开始进入教育行业,立足泛IT类职业教育,以打造高新技术人才为宗旨,专注于提供多层次、个性化的职业技能培训课程,为各行业培养技术开发、应用和管理等岗位的中高端人才,致力于成为优质的职业教育内容提供商。 0 1 Python优势 1、

    2024年02月15日
    浏览(48)
  • 个人所得税专项抵扣:Apsara Clouder云计算专项技能认证考试题目和答案【保姆级别教程】

    【保姆级别教程】个人所得税年度应纳税额抵扣:Apsara Clouder云计算专项技能认证:云服务器ECS入门。考试题及答案,已验证过了,新增了最新增加的考题。 入口: https://edu.aliyun.com/certification/cldc15 用自己的支付宝扫码登录就可以了。0元支付购买后,点击进入考试。 1.云服务

    2023年04月09日
    浏览(67)
  • MySQL的四种安装方式(新手必看、详解、保姆级教程)

    MySQL是一个 关系型数据库管理系统 , 由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。 MySQL是一种关系型数据库管理系统

    2024年02月20日
    浏览(41)
  • Python保姆级教程 数据类型—新手小白入门必看系列

    推荐使用压缩软件和杀毒软件 7 - zip 使用火绒 优点: 代码说明 没注释的代码 有注释的代码 不让解释器执行注释的那句话 单行注释快捷键:ctrl + ? \\\"\\\"\\\"\\\"\\\"\\\" (三个双引号) 185730213551 什么是变量:可以改变的量 计算机用来存贮数据的盒子,想用这个数据,就直接那盒子就好了

    2024年02月16日
    浏览(58)
  • 基于Ubuntu22.04的Samba服务器搭建教程(新手保姆级教程)

    Samba 是在 Linux 和 UNIX 系统上实现SMB 协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型

    2024年04月08日
    浏览(60)
  • 【GNN2】PyG完成图分类任务,新手入门,保姆级教程

    上次讲了如何给节点分类,这次我们来看如何用GNN完成图分类任务,也就是Graph-level的任务。 【GNN 1】PyG实现图神经网络,完成节点分类任务,人话、保姆级教程-CSDN博客 图分类就是以图为单位的分类,举个例子:每个学校都有社交关系网, 图分类就是通过这个社交网络判别

    2024年01月21日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包