背景介绍:
CommonAPI C++ SOME/IP Runtime 是一套基于vsomeip和CommonAPI运行的框架,给app层可以提供丰富的接口进行数据通信,现在让我们来实现win平台的库编译。
调查:
老规矩,先行查看CMakeLists.txt
if (MSVC) # Boost find_package( Boost 1.55 COMPONENTS system thread log REQUIRED ) if(Boost_FOUND) if(Boost_LIBRARY_DIR) MESSAGE( STATUS "Boost_LIBRARY_DIR not empty using it: ${Boost_LIBRARY_DIR}" ) else() if(BOOST_LIBRARYDIR) MESSAGE( STATUS "Boost_LIBRARY_DIR empty but BOOST_LIBRARYDIR is set setting Boost_LIBRARY_DIR to: ${BOOST_LIBRARYDIR}" ) set(Boost_LIBRARY_DIR ${BOOST_LIBRARYDIR}) endif() endif() else()
可以发现,依赖Boost库,我们在前些篇章已经做成了Boost的库,具体的方法参考:
if ("${USE_INSTALLED_COMMONAPI}" STREQUAL "ON") FIND_PACKAGE(CommonAPI 3.2.0 REQUIRED CONFIG NO_CMAKE_PACKAGE_REGISTRY) else() FIND_PACKAGE(CommonAPI 3.2.0 REQUIRED CONFIG NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH) endif()
依赖CommonAPI Core的库,具体的实现参考:
find_package (vsomeip3 3.1.0 REQUIRED)
依赖vsomeip的库,具体实现参考:
至此准备工作已经完成,以上就是编译过程依赖的库
由于之前编译做成的库比较零散,所以让我们先把它们集合起来,并在cmake时设定相应路径,如下:
cmake -G "NMake Makefiles" -DCMAKE_INSTALL_PREFIX="C:/Project/capicxx-someip-runtime" -DBOOST_ROOT="C:/Project/Boost" -DCommonAPI_ROOT="C:/Project/capicxx-core-runtime" -Dvsomeip3_ROOT="C:/Project/vsomeip3" ../
如果你足够的幸运,继续执行:
nmake nmake install
编译完成后,你会得到:
以上的编译内容会发布在: