在Android9下编译vSomeIP和CommonAPI以及使用例子
在Android的源码中下载和编译c++的boost STL库:
先克隆出boost:
$ cd ac8257-androidP/
$ mkdir boost-1.70.0
$ cd boost-1.70.0/
$ vi get_boost.sh
git clone –branch boost-1.70.0 https://github.com/boostorg/accumulators.git
git clone –branch boost-1.70.0 https://github.com/boostorg/algorithm.git
git clone –branch boost-1.70.0 https://github.com/boostorg/align.git
git clone –branch boost-1.70.0 https://github.com/boostorg/any.git
git clone –branch boost-1.70.0 https://github.com/boostorg/array.git
git clone –branch boost-1.70.0 https://github.com/boostorg/asio.git
git clone –branch boost-1.70.0 https://github.com/boostorg/assert.git
git clone –branch boost-1.70.0 https://github.com/boostorg/assign.git
git clone –branch boost-1.70.0 https://github.com/boostorg/atomic.git
git clone –branch boost-1.70.0 https://github.com/boostorg/beast.git
git clone –branch boost-1.70.0 https://github.com/boostorg/bimap.git
git clone –branch boost-1.70.0 https://github.com/boostorg/bind.git
git clone –branch boost-1.70.0 https://github.com/boostorg/callable_traits.git
git clone –branch boost-1.70.0 https://github.com/boostorg/chrono.git
git clone –branch boost-1.70.0 https://github.com/boostorg/circular_buffer.git
git clone –branch boost-1.70.0 https://github.com/boostorg/compatibility.git
git clone –branch boost-1.70.0 https://github.com/boostorg/compute.git
git clone –branch boost-1.70.0 https://github.com/boostorg/concept_check.git
git clone –branch boost-1.70.0 https://github.com/boostorg/config.git
git clone –branch boost-1.70.0 https://github.com/boostorg/container.git
git clone –branch boost-1.70.0 https://github.com/boostorg/container_hash.git
git clone –branch boost-1.70.0 https://github.com/boostorg/context.git
git clone –branch boost-1.70.0 https://github.com/boostorg/conversion.git
git clone –branch boost-1.70.0 https://github.com/boostorg/convert.git
git clone –branch boost-1.70.0 https://github.com/boostorg/core.git
git clone –branch boost-1.70.0 https://github.com/boostorg/coroutine.git
git clone –branch boost-1.70.0 https://github.com/boostorg/coroutine2.git
git clone –branch boost-1.70.0 https://github.com/boostorg/crc.git
git clone –branch boost-1.70.0 https://github.com/boostorg/date_time.git
git clone –branch boost-1.70.0 https://github.com/boostorg/detail.git
git clone –branch boost-1.70.0 https://github.com/boostorg/disjoint_sets.git
git clone –branch boost-1.70.0 https://github.com/boostorg/dll.git
git clone –branch boost-1.70.0 https://github.com/boostorg/dynamic_bitset.git
git clone –branch boost-1.70.0 https://github.com/boostorg/endian.git
git clone –branch boost-1.70.0 https://github.com/boostorg/exception.git
git clone –branch boost-1.70.0 https://github.com/boostorg/fiber.git
git clone –branch boost-1.70.0 https://github.com/boostorg/filesystem.git
git clone –branch boost-1.70.0 https://github.com/boostorg/flyweight.git
git clone –branch boost-1.70.0 https://github.com/boostorg/foreach.git
git clone –branch boost-1.70.0 https://github.com/boostorg/format.git
git clone –branch boost-1.70.0 https://github.com/boostorg/function.git
git clone –branch boost-1.70.0 https://github.com/boostorg/functional.git
git clone –branch boost-1.70.0 https://github.com/boostorg/function_types.git
git clone –branch boost-1.70.0 https://github.com/boostorg/fusion.git
git clone –branch boost-1.70.0 https://github.com/boostorg/geometry.git
git clone –branch boost-1.70.0 https://github.com/boostorg/gil.git
git clone –branch boost-1.70.0 https://github.com/boostorg/graph.git
git clone –branch boost-1.70.0 https://github.com/boostorg/graph_parallel.git
git clone –branch boost-1.70.0 https://github.com/boostorg/hana.git
git clone –branch boost-1.70.0 https://github.com/boostorg/heap.git
git clone –branch boost-1.70.0 https://github.com/boostorg/icl.git
git clone –branch boost-1.70.0 https://github.com/boostorg/integer.git
git clone –branch boost-1.70.0 https://github.com/boostorg/interprocess.git
git clone –branch boost-1.70.0 https://github.com/boostorg/intrusive.git
git clone –branch boost-1.70.0 https://github.com/boostorg/io.git
git clone –branch boost-1.70.0 https://github.com/boostorg/iostreams.git
git clone –branch boost-1.70.0 https://github.com/boostorg/iterator.git
git clone –branch boost-1.70.0 https://github.com/boostorg/lambda.git
git clone –branch boost-1.70.0 https://github.com/boostorg/lexical_cast.git
git clone –branch boost-1.70.0 https://github.com/boostorg/locale.git
git clone –branch boost-1.70.0 https://github.com/boostorg/local_function.git
git clone –branch boost-1.70.0 https://github.com/boostorg/lockfree.git
git clone –branch boost-1.70.0 https://github.com/boostorg/log.git
git clone –branch boost-1.70.0 https://github.com/boostorg/logic.git
git clone –branch boost-1.70.0 https://github.com/boostorg/math.git
git clone –branch boost-1.70.0 https://github.com/boostorg/metaparse.git
git clone –branch boost-1.70.0 https://github.com/boostorg/move.git
git clone –branch boost-1.70.0 https://github.com/boostorg/mp11.git
git clone –branch boost-1.70.0 https://github.com/boostorg/mpi.git
git clone –branch boost-1.70.0 https://github.com/boostorg/mpl.git
git clone –branch boost-1.70.0 https://github.com/boostorg/msm.git
git clone –branch boost-1.70.0 https://github.com/boostorg/multi_array.git
git clone –branch boost-1.70.0 https://github.com/boostorg/multi_index.git
git clone –branch boost-1.70.0 https://github.com/boostorg/multiprecision.git
git clone –branch boost-1.70.0 https://github.com/boostorg/numeric_conversion.git
git clone –branch boost-1.70.0 https://github.com/boostorg/optional.git
git clone –branch boost-1.70.0 https://github.com/boostorg/parameter.git
git clone –branch boost-1.70.0 https://github.com/boostorg/phoenix.git
git clone –branch boost-1.70.0 https://github.com/boostorg/poly_collection.git
git clone –branch boost-1.70.0 https://github.com/boostorg/polygon.git
git clone –branch boost-1.70.0 https://github.com/boostorg/pool.git
git clone –branch boost-1.70.0 https://github.com/boostorg/predef.git
git clone –branch boost-1.70.0 https://github.com/boostorg/preprocessor.git
git clone –branch boost-1.70.0 https://github.com/boostorg/process.git
git clone –branch boost-1.70.0 https://github.com/boostorg/program_options.git
git clone –branch boost-1.70.0 https://github.com/boostorg/property_map.git
git clone –branch boost-1.70.0 https://github.com/boostorg/property_tree.git
git clone –branch boost-1.70.0 https://github.com/boostorg/proto.git
git clone –branch boost-1.70.0 https://github.com/boostorg/ptr_container.git
git clone –branch boost-1.70.0 https://github.com/boostorg/python.git
git clone –branch boost-1.70.0 https://github.com/boostorg/qvm.git
git clone –branch boost-1.70.0 https://github.com/boostorg/random.git
git clone –branch boost-1.70.0 https://github.com/boostorg/range.git
git clone –branch boost-1.70.0 https://github.com/boostorg/ratio.git
git clone –branch boost-1.70.0 https://github.com/boostorg/rational.git
git clone –branch boost-1.70.0 https://github.com/boostorg/regex.git
git clone –branch boost-1.70.0 https://github.com/boostorg/scope_exit.git
git clone –branch boost-1.70.0 https://github.com/boostorg/serialization.git
git clone –branch boost-1.70.0 https://github.com/boostorg/signals.git
git clone –branch boost-1.70.0 https://github.com/boostorg/signals2.git
git clone –branch boost-1.70.0 https://github.com/boostorg/smart_ptr.git
git clone –branch boost-1.70.0 https://github.com/boostorg/sort.git
git clone –branch boost-1.70.0 https://github.com/boostorg/spirit.git
git clone –branch boost-1.70.0 https://github.com/boostorg/stacktrace.git
git clone –branch boost-1.70.0 https://github.com/boostorg/statechart.git
git clone –branch boost-1.70.0 https://github.com/boostorg/static_assert.git
git clone –branch boost-1.70.0 https://github.com/boostorg/system.git
git clone –branch boost-1.70.0 https://github.com/boostorg/test.git
git clone –branch boost-1.70.0 https://github.com/boostorg/thread.git
git clone –branch boost-1.70.0 https://github.com/boostorg/throw_exception.git
git clone –branch boost-1.70.0 https://github.com/boostorg/timer.git
git clone –branch boost-1.70.0 https://github.com/boostorg/tokenizer.git
git clone –branch boost-1.70.0 https://github.com/boostorg/tti.git
git clone –branch boost-1.70.0 https://github.com/boostorg/tuple.git
git clone –branch boost-1.70.0 https://github.com/boostorg/type_erasure.git
git clone –branch boost-1.70.0 https://github.com/boostorg/type_index.git
git clone –branch boost-1.70.0 https://github.com/boostorg/typeof.git
git clone –branch boost-1.70.0 https://github.com/boostorg/type_traits.git
git clone –branch boost-1.70.0 https://github.com/boostorg/units.git
git clone –branch boost-1.70.0 https://github.com/boostorg/unordered.git
git clone –branch boost-1.70.0 https://github.com/boostorg/utility.git
git clone –branch boost-1.70.0 https://github.com/boostorg/uuid.git
git clone –branch boost-1.70.0 https://github.com/boostorg/variant.git
git clone –branch boost-1.70.0 https://github.com/boostorg/vmd.git
git clone –branch boost-1.70.0 https://github.com/boostorg/wave.git
git clone –branch boost-1.70.0 https://github.com/boostorg/winapi.git
git clone –branch boost-1.70.0 https://github.com/boostorg/xpressive.git
$ chmod +x get_boost.sh
$ ./get_boost.sh
$ vi Android.bp
cc_defaults {
name: “boost_defaults”,
vendor: true,
// vendor_available: true,
}
cc_defaults {
name: “boost_headers_defaults”,
defaults: [“boost_defaults”],
}
cc_defaults {
name: “boost_library_defaults”,
defaults: [“boost_defaults”],
rtti: true,
cflags: [
“-Wall”,
// “-Werror”,
“-fexceptions”,
// “-DBOOST_THREAD_DONT_USE_CHRONO”,
// “-DBOOST_THREAD_POSIX”,
“-DBOOST_ASIO_HAS_STD_STRING_VIEW”,
],
}
cc_library_headers {
name: “libboost_headers”,
defaults: [“boost_headers_defaults”],
export_include_dirs: [
“accumulators/include/”,
“algorithm/include/”,
“align/include/”,
“any/include/”,
“array/include”,
“asio/include/”,
“assert/include”,
“assign/include”,
“atomic/include”,
“beast/include”,
“bimap/include”,
“bind/include/”,
“callable_traits/include/”,
“chrono/include”,
“circular_buffer/include”,
“compatibility/include”,
“compute/include”,
“concept_check/include”,
“config/include”,
“container/include”,
“container_hash/include”,
“context/include”,
“conversion/include”,
“convert/include”,
“core/include”,
“coroutine/include”,
“coroutine2/include”,
“crc/include”,
“date_time/include”,
“detail/include”,
“disjoint_sets/include”,
“dll/include”,
“dynamic_bitset/include”,
“endian/include”,
“exception/include”,
“fiber/include”,
“filesystem/include”,
“flyweight/include”,
“foreach/include/”,
“format/include/”,
“function/include/”,
“functional/include/”,
“function_types/include/”,
“fusion/include”,
“geometry/include”,
“gil/include”,
“graph/include”,
“graph_parallel/include”,
“hana/include”,
“heap/include”,
“icl/include”,
“integer/include”,
“interprocess/include/”,
“intrusive/include”,
“io/include”,
“iostreams/include”,
“iterator/include”,
“lambda/include”,
“lexical_cast/include/”,
“locale/include”,
“local_function/include”,
“lockfree/include”,
“log/include”,
“logic/include”,
“math/include”,
“metaparse/include”,
“move/include”,
“mp11/include”,
“mpi/include”,
“mpl/include”,
“msm/include”,
“multi_array/include”,
“multi_index/include/”,
“multiprecision/include/”,
// “numeric/include”,
“numeric_conversion/include”,
“optional/include”,
“parameter/include”,
“phoenix/include”,
“poly_collection/include”,
“polygon/include”,
“pool/include”,
“predef/include”,
“preprocessor/include”,
“process/include”,
“program_options/include”,
“property_map/include”,
“property_tree/include/”,
“proto/include”,
“ptr_container/include”,
“python/include”,
“qvm/include”,
“random/include”,
“range/include”,
“ratio/include”,
“rational/include”,
“regex/include”,
“scope_exit/include”,
“serialization/include”,
// “signals/include”,
“signals2/include”,
“smart_ptr/include”,
“sort/include”,
“spirit/include”,
“stacktrace/include”,
“statechart/include”,
“static_assert/include”,
“system/include”,
“test/include”,
“thread/include”,
“throw_exception/include”,
“timer/include”,
“tokenizer/include/”,
“tti/include/”,
“tuple/include/”,
“type_erasure/include”,
“type_index/include”,
“typeof/include/”,
“type_traits/include”,
“units/include”,
“unordered/include”,
“utility/include”,
“uuid/include”,
“variant/include/”,
“vmd/include/”,
“wave/include/”,
“winapi/include/”,
“xpressive/include/”,
]
}
cc_library {
name: “libboost_chrono”,
defaults: [“boost_library_defaults”],
header_libs: [
“libboost_headers”,
],
shared: {
shared_libs: [
“libboost_system”,
],
},
srcs : [
“chrono/src/**/*.cpp”,
],
export_include_dirs: [“chrono/include”],
export_header_lib_headers: [
“libboost_headers”,
],
}
cc_library {
name: “libboost_date_time”,
defaults: [“boost_library_defaults”],
header_libs: [
“libboost_headers”,
],
srcs : [
“date_time/src/**/*.cpp”,
],
export_include_dirs: [“date_time/include”],
export_header_lib_headers: [
“libboost_headers”,
],
}
cc_library {
name: “libboost_filesystem”,
defaults: [“boost_library_defaults”],
//FIXME: build workaround
cflags: [
“-Wno-deprecated-declarations”,
“-Wno-non-virtual-dtor”,
“-Wno-unused-parameter”,
],
header_libs: [
“libboost_headers”,
],
shared: {
shared_libs: [
“libboost_system”,
],
},
srcs : [
“filesystem/src/**/*.cpp”,
],
export_include_dirs: [“filesystem/include”],
export_header_lib_headers: [
“libboost_headers”,
],
}
cc_library {
name: “libboost_log”,
defaults: [“boost_library_defaults”],
//FIXME: build workaround
cflags: [
“-Wno-implicit-fallthrough”,
“-Wno-non-virtual-dtor”,
“-Wno-unused-parameter”,
],
header_libs: [
“libboost_headers”,
],
shared: {
shared_libs: [
“libboost_thread”,
“libboost_filesystem”,
“libboost_regex”,
“libboost_system”,
],
},
srcs : [
“log/src/**/*.cpp”,
],
exclude_srcs : [
“log/src/dump_ssse3.cpp”,
“log/src/dump_avx2.cpp”,
“log/src/windows/*.cpp”
],
local_include_dirs : [
“log/src”,
“log/src/posix”,
“log/src/setup”,
“log/src/windows”,
],
export_include_dirs: [“log/include”],
export_header_lib_headers: [
“libboost_headers”,
],
}
cc_library {
name: “libboost_program_options”,
defaults: [“boost_library_defaults”],
header_libs: [
“libboost_headers”,
],
srcs : [
“program_options/src/**/*.cpp”,
],
export_include_dirs: [“program_options/include”],
export_header_lib_headers: [
“libboost_headers”,
],
}
cc_library {
name: “libboost_regex”,
defaults: [“boost_library_defaults”],
//FIXME: build workaround
cflags: [
“-Wno-implicit-fallthrough”,
],
header_libs: [
“libboost_headers”,
],
srcs : [
“regex/src/**/*.cpp”,
],
export_include_dirs: [“regex/include”],
export_header_lib_headers: [
“libboost_headers”,
],
}
cc_library {
name: “libboost_system”,
defaults: [“boost_library_defaults”],
header_libs: [
“libboost_headers”,
],
srcs : [
“system/src/**/*.cpp”,
],
export_include_dirs: [“system/include”],
export_header_lib_headers: [
“libboost_headers”,
],
}
cc_library {
name: “libboost_thread”,
defaults: [“boost_library_defaults”],
//FIXME: build workaround
cflags: [
“-Wno-non-virtual-dtor”,
],
header_libs: [
“libboost_headers”,
],
shared: {
shared_libs: [
“libboost_system”,
],
},
srcs : [
“thread/src/**/*.cpp”,
],
exclude_srcs : [
“thread/src/win32/*.cpp”,
“thread/src/pthread/once_atomic.cpp”,
],
local_include_dirs : [
“thread/src”,
“thread/src/pthread”,
],
export_include_dirs: [“thread/include”],
export_header_lib_headers: [
“libboost_headers”,
],
}
$ source build/envsetup.sh
$ lunch full_ac8257_demo-userdebug
$ mm showcommands
生成位置:
$ ll ../out/target/product/ac8257_demo/vendor/lib/libboost*
$ ll ../out/target/product/ac8257_demo/vendor/lib64/libboost*
下载和编译vsomeip的bind库(自带Android.bp):
编译vSomeIP库:
$ cd ac8257-androidP/
$ tar -zxvf vsomeip-3.1.7.1.tar.gz
$ cd vsomeip-3.1.7.1/
$ vi Android.bp
…
cc_library_shared {
name: “libvsomeip”,
vendor: true,
设置stl为libc++:
stl: “libc++”,
…
更改所有的
“implementation/helper/1.66”
为:
“implementation/helper/1.70”
$ vi implementation/helper/1.70/boost/asio/detail/reactive_socket_recvfrom_op_ext_local.hpp
reactive_socket_recvfrom_op_base_ext_local(socket_type socket, int protocol_type,
const MutableBufferSequence& buffers, Endpoint& endpoint,
socket_base::message_flags flags, func_type complete_func)
修改这行:
: reactor_op(&reactive_socket_recvfrom_op_base_ext_local::do_perform, complete_func),
为:
: reactor_op_ext_local(&reactive_socket_recvfrom_op_base_ext_local::do_perform, complete_func),
$ source build/envsetup.sh
$ lunch full_ac8257_demo-userdebug
$ cd
$ mm showcommands
生成位置:
$ ll ../out/target/product/ac8257_demo/vendor/lib/libvsomeip*
$ ll ../out/target/product/ac8257_demo/vendor/lib64/libvsomeip*
下载和编译CommonAPI核心库:
$ cd ac8257-androidP/
$ tar -zxvf capicxx-core-runtime-3.1.12.6.tar.gz
$ cd capicxx-core-runtime-3.1.12.6/
$ vi Android.bp
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_CFLAGS += -Dlinux
# run shell command:
# $(shell mkdir -p ${OUT}”/system/etc/”)
# if in Android.bp, use “cflags: [“-fno-strict-aliasing”,”-Wno-unused-parameter”,”-Wno-unused-variable”,”-Wno-macro-redefined”,”-Wno-format”,”-Wno-sign-compare”,”-Wno-implicit-function-declaration”]”
LOCAL_CFLAGS += -Wno-unused-parameter
LOCAL_CFLAGS += -Wno-unused-variable
LOCAL_CFLAGS += -Wno-macro-redefined
LOCAL_CFLAGS += -Wno-format
LOCAL_CFLAGS += -Wno-sign-compare
LOCAL_CFLAGS += -Wno-implicit-function-declaration
LOCAL_CFLAGS += -Wno-date-time
LOCAL_CFLAGS += -Wno-error
LOCAL_CFLAGS += -DCOMMONAPI_INTERNAL_COMPILATION
LOCAL_CFLAGS += -std=c++11
LOCAL_CFLAGS += -fexceptions
LOCAL_CFLAGS += -fstrict-aliasing
LOCAL_CFLAGS += -fstack-protector
LOCAL_CFLAGS += -fasynchronous-unwind-tables
LOCAL_CFLAGS += -fno-omit-frame-pointer
LOCAL_MODULE := libCommonAPI
LOCAL_SRC_FILES := $(call all-subdir-cpp-files)
define all-include-dirs
$(shell find $(LOCAL_PATH) -type d)
endef
LOCAL_C_INCLUDES := $(call all-include-dirs)
include $(BUILD_SHARED_LIBRARY)
$(warning “LOCAL_PATH: $(LOCAL_PATH)”)
$(warning “LOCAL_SRC_FILES: $(LOCAL_SRC_FILES)”)
$(warning “LOCAL_C_INCLUDES: $(LOCAL_C_INCLUDES)”)
$(warning “TARGET_OUT: $(TARGET_OUT)”)
$(warning “OUT_DIR: $(OUT_DIR)”)
$(warning “TARGET_OUT_ROOT: $(TARGET_OUT_ROOT)”)
$ source build/envsetup.sh
$ lunch full_ac8257_demo-userdebug
$ cd
$ mm showcommands
生成位置:
$ ll ../out/target/product/ac8257_demo/system/lib/libCommonAPI.so
$ ll ../out/target/product/ac8257_demo/system/lib64/libCommonAPI.so
下载和编译CommonAPI核心库关于someip的适配库:
$ cd ac8257-androidP/
$ tar -zxvf capicxx-someip-runtime-3.1.12.17.tar.gz
$ cd capicxx-someip-runtime-3.1.12.17/
$ vi Android.bp
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_CFLAGS += -Dlinux
# run shell command:
# $(shell mkdir -p ${OUT}”/system/etc/”)
# if in Android.bp, use “cflags: [“-fno-strict-aliasing”,”-Wno-unused-parameter”,”-Wno-unused-variable”,”-Wno-macro-redefined”,”-Wno-format”,”-Wno-sign-compare”,”-Wno-implicit-function-declaration”]”
LOCAL_CFLAGS += -Wno-unused-parameter
LOCAL_CFLAGS += -Wno-unused-variable
LOCAL_CFLAGS += -Wno-macro-redefined
LOCAL_CFLAGS += -Wno-format
LOCAL_CFLAGS += -Wno-sign-compare
LOCAL_CFLAGS += -Wno-implicit-function-declaration
LOCAL_CFLAGS += -Wno-date-time
LOCAL_CFLAGS += -Wno-ignored-attributes
LOCAL_CFLAGS += -Wno-error
LOCAL_CFLAGS += -DCOMMONAPI_INTERNAL_COMPILATION
LOCAL_CFLAGS += -D_GLIBCXX_USE_NANOSLEEP
LOCAL_CFLAGS += -DBOOST_LOG_DYN_LINK
LOCAL_CFLAGS += -std=c++11
LOCAL_CFLAGS += -fexceptions
LOCAL_CFLAGS += -fstrict-aliasing
LOCAL_CFLAGS += -fstack-protector
LOCAL_CFLAGS += -fasynchronous-unwind-tables
LOCAL_CFLAGS += -fno-omit-frame-pointer
# APP_STL := c++_shared
LOCAL_MODULE := libCommonAPI-SomeIP
LOCAL_SRC_FILES := $(call all-subdir-cpp-files)
define all-include-dirs
$(shell find $(LOCAL_PATH) -type d)
endef
LOCAL_C_INCLUDES += $(call all-include-dirs)
define all-core-include-dirs
$(shell find $(LOCAL_PATH)/../capicxx-core-runtime-3.1.12.6 -type d)
endef
LOCAL_C_INCLUDES += $(call all-core-include-dirs)
define all-vsomeip-include-dirs
$(shell find $(LOCAL_PATH)/../vsomeip-3.1.7.1 -type d)
endef
LOCAL_C_INCLUDES += $(call all-vsomeip-include-dirs)
include $(BUILD_SHARED_LIBRARY)
$(warning “LOCAL_PATH: $(LOCAL_PATH)”)
$(warning “LOCAL_SRC_FILES: $(LOCAL_SRC_FILES)”)
$(warning “LOCAL_C_INCLUDES: $(LOCAL_C_INCLUDES)”)
$(warning “TARGET_OUT: $(TARGET_OUT)”)
$(warning “OUT_DIR: $(OUT_DIR)”)
$(warning “TARGET_OUT_ROOT: $(TARGET_OUT_ROOT)”)
$ vi include/CommonAPI/SomeIP/Connection.hpp
#include <map>
#include <set>
#include <atomic>
增加一行:
#include <condition_variable>
$ source build/envsetup.sh
$ lunch full_ac8257_demo-userdebug
$ cd
$ mm showcommands
生成位置(有问题,还没法生成):
?