android .vsh文件是什么,在Android9下用ndk编译vSomeIP和CommonAPI以及使用例子

本文详述如何使用Android NDK编译Boost、vSomeIP和CommonAPI,包括修改脚本、设置路径、编译过程以及生成的库和可执行文件的位置。同时,介绍了如何创建Android客户端和服务端应用,并配置JSON文件以实现通信。最后,展示了服务端和客户端的运行步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用Android NDK编译Boost:

$ cd Boost-for-Android/

修改成需要的版本:

$ vi build-android.sh

BOOST_VER2=70

$ export NDK_ROOT=/AndroidSDK/ndk-bundle

$ nohup ./build-android.sh /AndroidSDK/ndk-bundle &

生成位置:

$ ls build/out/arm64-v8a/*

include:

boost-1_70

lib:

cmake                                   libboost_fiber-clang-mt-a64-1_70.a       libboost_math_tr1-clang-mt-a64-1_70.a          libboost_stacktrace_noop-clang-mt-a64-1_70.a

libboost_atomic-clang-mt-a64-1_70.a     libboost_filesystem-clang-mt-a64-1_70.a  libboost_math_tr1f-clang-mt-a64-1_70.a         libboost_system-clang-mt-a64-1_70.a

libboost_chrono-clang-mt-a64-1_70.a     libboost_graph-clang-mt-a64-1_70.a       libboost_math_tr1l-clang-mt-a64-1_70.a         libboost_test_exec_monitor-clang-mt-a64-1_70.a

libboost_container-clang-mt-a64-1_70.a  libboost_iostreams-clang-mt-a64-1_70.a   libboost_prg_exec_monitor-clang-mt-a64-1_70.a  libboost_thread-clang-mt-a64-1_70.a

libboost_context-clang-mt-a64-1_70.a    libboost_log-clang-mt-a64-1_70.a         libboost_program_options-clang-mt-a64-1_70.a   libboost_timer-clang-mt-a64-1_70.a

libboost_contract-clang-mt-a64-1_70.a   libboost_log_setup-clang-mt-a64-1_70.a   libboost_random-clang-mt-a64-1_70.a            libboost_type_erasure-clang-mt-a64-1_70.a

libboost_coroutine-clang-mt-a64-1_70.a  libboost_math_c99-clang-mt-a64-1_70.a    libboost_regex-clang-mt-a64-1_70.a             libboost_unit_test_framework-clang-mt-a64-1_70.a

libboost_date_time-clang-mt-a64-1_70.a  libboost_math_c99f-clang-mt-a64-1_70.a   libboost_serialization-clang-mt-a64-1_70.a     libboost_wave-clang-mt-a64-1_70.a

libboost_exception-clang-mt-a64-1_70.a  libboost_math_c99l-clang-mt-a64-1_70.a   libboost_stacktrace_basic-clang-mt-a64-1_70.a  libboost_wserialization-clang-mt-a64-1_70.a

使用Android NDK编译vsomeip的bind库(ENABLE_COMPAT表示兼容老的叫vsomeip,新的叫someip3):

$ mv 3.1.7.1.tar.gz vsomeip-3.1.7.1.tar.gz

$ tar -zxvf vsomeip-3.1.7.1.tar.gz

$ cd vsomeip-3.1.7.1/

$ vi CMake_build.sh

#!/bin/bash

set -x

BASEPATH=.

NDKPATH=/AndroidSDK/ndk-bundle

CMAKEPATH=/AndroidSDK/cmake/3.6.4111459/bin

PLATFORM=arm64-v8a

BUILDTYPE=Debug

#rm -rf CMakeCache.txt

#rm -rf CMakeFiles

#rm -rf cmake_install.cmake

#rm -rf Makefile

#rm -rf CTestTestfile.cmake

${CMAKEPATH}/cmake \

-DCMAKE_TOOLCHAIN_FILE=${NDKPATH}/build/cmake/android.toolchain.cmake \

-DANDROID_ABI=${PLATFORM} \

-DANDROID_NDK=${NDKPATH} \

-DANDROID_NATIVE_API_LEVEL=29 \

-DANDROID_PLATFORM=android-29 \

-DANDROID_STL=c++_shared \

-DCMAKE_BUILD_TYPE=${BUILDTYPE} \

-DANDROID_TOOLCHAIN=clang \

-DBOOST_ROOT=${BASEPATH}/boost/arm64-v8a \

-DCMAKE_INSTALL_PREFIX=${BASEPATH}/out/ \

-DENABLE_COMPAT=1 \

-DVSOMEIP_INSTALL_ROUTINGMANAGERD=ON \

-DENABLE_MULTIPLE_ROUTING_MANAGERS=1 \

${BASEPATH}

make VERBOSE=1

make install

set +x

$ vi CMakeLists.txt

# OS

if (${CMAKE_SYSTEM_NAME} MATCHES “Android”)

set(OS “Android”)

set(DL_LIBRARY “”)

set(EXPORTSYMBOLS “”)

set(NO_DEPRECATED “”)

set(OPTIMIZE “”)

set(OS_CXX_FLAGS “-Wno-error=format-security -D_GLIBCXX_USE_NANOSLEEP -pthread -O -Wall -Wextra -Wformat -Wformat-security -Wconversion -fexceptions -fstrict-aliasing -fstack-protector-strong -fasynchronous-unwind-tables -fno-omit-frame-pointer -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -fPIE -pie -Wl,-z,relro,-z,now”)

endif (${CMAKE_SYSTEM_NAME} MATCHES “Android”)

if (${CMAKE_SYSTEM_NAME} MATCHES “Linux”)

# Boost

set(BOOST_ROOT ${CMAKE_SOURCE_DIR}/../Boost-for-Android/build/out/${ANDROID_ABI})

set(BOOST_INCLUDEDIR ${BOOST_ROOT}/include/boost-1_70)

set(BOOST_LIBRARYDIR ${BOOST_ROOT}/lib)

set(Boost_FOUND 1)

set(Boost_INCLUDE_DIR ${BOOST_ROOT}/include/boost-1_70)

set(Boost_LIBRARY_DIR ${BOOST_ROOT}/lib)

set(Boost_VERSION 107000)

#find_package( Boost 1.55 COMPONENTS system thread log REQUIRED )

include_directories( ${Boost_INCLUDE_DIR} )

else()

#    set (CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -D${OS} ${OS_CXX_FLAGS} -DBOOST_LOG_DYN_LINK -g ${OPTIMIZE} -std=c++11 ${NO_DEPRECATED} ${EXPORTSYMBOLS}”)

set (CMAKE_CXX_FLAGS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值