CMake Integration

CMake 기반 프로젝트에서 raisin_sdk를 사용하는 방법입니다.

CMakeLists.txt 예시

cmake_minimum_required(VERSION 3.10)
project(my_robot_controller)

set(CMAKE_CXX_STANDARD 17)

# raisin_sdk_install 경로 설정
set(RAISIN_SDK_PATH "${CMAKE_SOURCE_DIR}/../raisin_sdk_install")

# Include 경로
include_directories(
    ${RAISIN_SDK_PATH}/include
)

# 라이브러리 경로
link_directories(
    ${RAISIN_SDK_PATH}/lib
)

# 의존성 패키지 (시스템)
find_package(Eigen3 REQUIRED)
find_package(OpenSSL REQUIRED)
find_package(PCL REQUIRED)
find_package(OpenCV REQUIRED)

# 실행 파일 생성
add_executable(my_controller src/main.cpp)

target_link_libraries(my_controller
    # raisin 라이브러리
    raisin_network
    raisin_interfaces
    nav_msgs
    sensor_msgs
    geometry_msgs
    builtin_interfaces
    std_msgs
    # 시스템 라이브러리
    Eigen3::Eigen
    OpenSSL::SSL
    OpenSSL::Crypto
    ${PCL_LIBRARIES}
    ${OpenCV_LIBS}
    pthread
)

# PCL include 경로
target_include_directories(my_controller PRIVATE ${PCL_INCLUDE_DIRS})
target_link_directories(my_controller PRIVATE ${PCL_LIBRARY_DIRS})
target_compile_definitions(my_controller PRIVATE ${PCL_DEFINITIONS})

빌드 방법

mkdir build && cd build
cmake ..
make -j$(nproc)

RPATH 설정 (선택)

실행 파일이 라이브러리를 찾지 못하는 경우:

방법 1: LD_LIBRARY_PATH 설정

export LD_LIBRARY_PATH=/path/to/raisin_sdk_install/lib:$LD_LIBRARY_PATH
./my_controller

방법 2: CMake RPATH 설정

# CMakeLists.txt에 추가
set(CMAKE_INSTALL_RPATH "${RAISIN_SDK_PATH}/lib")
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)

방법 3: 시스템 라이브러리 경로 추가

sudo echo "/path/to/raisin_sdk_install/lib" > /etc/ld.so.conf.d/raisin.conf
sudo ldconfig

예제 프로젝트 구조

my_project/
├── CMakeLists.txt
├── src/
│   └── main.cpp
├── include/
│   └── my_controller.hpp
└── ../raisin_sdk_install/      # SDK 설치 디렉토리
    ├── include/
    └── lib/

Note

raisin_sdk_install 폴더의 위치는 프로젝트 구조에 맞게 조정하세요. RAISIN_SDK_PATH 변수를 절대 경로로 설정해도 됩니다.