*/

CommonAPI stub, proxy, common 분류하여 동적 라이브러리 만들기

CommonAPI Generator로 생성되는 file에서 Stub, Proxy, Common으로 어떤 파일들이 생성되는지 확인할 수 있었는데, 각자의 디렉토리에 해당 화일 생성하는 방법을 알아보자.
파일을 나눠서 생성하는것은 SOME/IP나 DBUS와 같이 바인딩 라이브러리를 만들때 활용한다.
동적으로 바인딩 라이브러리를 구성하면 실행파일을 실행시킬때 CommonAPI 관련 환경파일(commonapi.ini, commonapi-somip.ini)도 같이 구성하여야 한다. - 추후 정리

commonapi Someip Generator의 옵션을 조정해서 각각의 위치로 파일을 생성한다.
  -dc directory : Common file들을 directory에 생성
  -dp directory : Proxy file들을 directory에 생성
  -ds directory : Stub file들을 directory에 생성

예제에서
  hello$ ../commonapi_someip_generator/commonapi-someip-generator-linux-x86 -ll verbose /fidl/HelloWorld.fdepl
와 같이 수행했던 명령을 아래와 같이 변경한다.
  hello$ ../commonapi_someip_generator/commonapi-someip-generator-linux-x86 -ll verbose /fidl/HelloWorld.fdepl  -dc src-gen_someip/common -dp src-gen_someip/proxy -ds src-gen_someip/stub



이제 Common, Stub, Proxy 용 SOME/IP 동적 바인딩 라이브러리(.so)를 만들어보자.
CMakeLists.txt를 아래와 같이 변경한다.
  • CMakeLists.txt
cmake_minimum_required(VERSION 2.8)

OPTION(USE_INSTALLED_COMMONAPI "Set to OFF to use the local (build tree) version of CommonAPI" OFF)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -std=c++0x -Wl,--no-as-needed")

include_directories(
     src-gen
     src-gen_someip/common
     src-gen_someip/proxy
     src-gen_someip/stub
     ~/capicxx-core-runtime/include      #capixx-core-runtime이 설치되어 있는 폴더
     ~/capicxx-someip-runtime/include    #capixx-someip-runtime이 설치되어 있는 폴더
     ~/vSomeIP/interface                 #vSomeIP가 설치되어 있는 폴더
)

link_directories(
     ~/COMMONAPI                         #CommonAPI 라이브러리가 설치되어 있는 폴더
)

add_library(HelloWorldsomeipCommon SHARED 
                src-gen_someip/common/v1/commonapi/HelloWorldSomeIPDeployment.cpp )
target_link_libraries(HelloWorldsomeipCommon ~/COMMONAPI/libCommonAPI-SomeIP.so vsomeip )
add_library(HelloWorldsomeipProxy SHARED 
  src-gen_someip/proxy/v1/commonapi/HelloWorldSomeIPProxy.cpp )
target_link_libraries(HelloWorldsomeipProxy ~/COMMONAPI/libCommonAPI-SomeIP.so vsomeip )
add_library(HelloWorldsomeipStub SHARED 
  src-gen_someip/stub/v1/commonapi/HelloWorldSomeIPStubAdapter.cpp )
target_link_libraries(HelloWorldsomeipStub ~/COMMONAPI/libCommonAPI-SomeIP.so vsomeip )


build 디렉토리로 이동하여
$ cmake ..

$ make

관련 페이지

0 comments:

댓글 쓰기