在安装CommonAPI之前,要先确保已经安装了CMake,并确保 CMake版本 > 2.8.12.
1.在目标目录下执行下面命令,下载commonAPI 的源代码,然后通过编译生成为CommonAPI运行时库
git clone https://github.com/GENIVI/capicxx-core-runtime.git
或者可以直接在网上下载,复制到目标目录下(例如/home/commonAPI/),并解压
https://docs.projects.genivi.org/yamaica-update-site/CommonAPI/runtime/
(一定要挑选合适的版本,要不然runtime和代码生成器可能不契合,生成的代码所包含的头文件与runtime的代码库不匹配)
选择安装包:CommonAPI_3.1.5
2.进入解压后的文件夹下。
cd CommonAPI_3.1.5
3.查看 ls,显示有以下文件夹或文件(不是必要的一步)
AUTHORS
cmake
CMakeLists.txt
commonapi.spec.in
docx
doxygen.in
include
INSTALL
LICENSE
README
src
4.通过编译生成为CommonAPI运行时库
mkdir build
cd build
cmake ..
make
5.在编译vsomeip之前,可能需要安装boost开源库
1)下载boost安装包
2)解压
3)
sh ./bootstrap.sh:执行配置脚本
./b2:编译
./b2 install --prefix=/home/***/CommonAPI
6.下载合适的vsomeip版本,解压并安装vsomeip库,或者选择合适的libdbus库
https://docs.projects.genivi.org/yamaica-update-site/CommonAPI/runtime/
选择安装包:vSomeIP_2.0.1
mkdir build
cd build
cmake ..
make
7.下载+解压+安装CommonAPI-someip的源代码,然后编译生成为CommonAPI-someip 运行时库。
或者选择CommonAPI-D-Bus的源代码,编译生成CommonAPI-D-Bus运行时库
https://docs.projects.genivi.org/yamaica-update-site/CommonAPI/runtime/
选择安装包:CommonAPI-SomeIP_3.1.5
mkdir build
cd build
cmake ..
make
8.下载代码生成器,并解压。
https://docs.projects.genivi.org/yamaica-update-site/CommonAPI/generator/3.1/3.1.5/
选择安装包:commonapi-generator + commonapi_someip_generator
9.创建目录
mkdir project:存放代码
mkdir (/project/)cgen/:存放代码生成器,将commonapi-generator + commonapi_someip_generator解压后的文件夹放入其中
选择哪个代码生成器,可以用uname -m查看服务器使用的什么处理器x86或者x86_64
//修改代码生成器可执行文件的权限
chmod +x ./commonapi-generator/commonapi-generator-linux-x86_64
chmod +x ./commonapi_someip_generator/commonapi-someip-generator-linux-x86_64
10.写生成文档并执行代码生成器产生代码
mkdir (/project/)fidl:存放*.fidl+*.fdepl文件
vim HelloWorld.fidl
vim HelloWorld.fdepl
//执行,如果正常,则生成的代码将位于新目录src-gen中,该选项-sk生成服务中接口实例的默认实现。
./cgen/commonapi-generator/commonapi-generator-linux-x86_64 -sk ./fidl/HelloWorld.fidl
./cgen/commonapi_someip_generator/commonapi-someip-generator-linux-x86_64 -ll verbose ./fidl/HelloWorld.fdepl
11.编写服务器+客户端代码
mkdir (/project/)src:存放服务器+客户端代码,开发人员自己写的应用程序
mkdir (/project/)build:便于执行cmake .. + make
vim CMakeLists.txt :编写编译的shell脚本
12.执行完cmake … + make之后
在/project/fidl目录下,创建新的json格式的配置文件 :
vim vsomeio.json
在最终启动客户端和服务器之前,必须设置一个环境变量才能定义json文件的路径:
cd build
export VSOMEIP_CONFIGURATION_FILE=../fidl/vsomeip.json
VSOMEIP_APPLICATION_NAME=service-sample ./HelloWorldService &
VSOMEIP_APPLICATION_NAME=client-sample ./HelloWorldClient