Tích hợp CMake
Dự án dùng SDK trực tiếp
cmake
cmake_minimum_required(VERSION 3.16)
project(my_app)
set(CMAKE_CXX_STANDARD 17)
# Trỏ tới SDK
set(CVEDIX_SDK_DIR "$ENV{CVEDIX_SDK_DIR}" CACHE PATH "CVEDIX SDK directory")
find_package(OpenCV REQUIRED)
add_executable(my_app main.cpp)
target_include_directories(my_app PRIVATE
${CVEDIX_SDK_DIR}/include
${OpenCV_INCLUDE_DIRS})
target_link_directories(my_app PRIVATE
${CVEDIX_SDK_DIR}/lib/x86_64)
target_link_libraries(my_app PRIVATE
cvedix_core
${OpenCV_LIBS})Build:
bash
cmake -B build -DCVEDIX_SDK_DIR=$CVEDIX_SDK_DIR
cmake --build build -j$(nproc)Dùng find_package
Nếu đã cài .deb package hoặc muốn dùng CMake config trong cmake/:
cmake
list(APPEND CMAKE_PREFIX_PATH "$ENV{CVEDIX_SDK_DIR}/cmake")
find_package(cvedix REQUIRED)
add_executable(my_app main.cpp)
target_link_libraries(my_app PRIVATE cvedix::cvedix_instance_sdk)Runtime path
Có 2 cách để executable tìm được .so lúc chạy:
Cách 1 — LD_LIBRARY_PATH (đơn giản):
bash
export LD_LIBRARY_PATH=$CVEDIX_SDK_DIR/lib/x86_64:$LD_LIBRARY_PATH
./my_appCách 2 — RPATH (đóng gói sản phẩm):
cmake
set_target_properties(my_app PROPERTIES
INSTALL_RPATH "$ORIGIN/../lib"
BUILD_WITH_INSTALL_RPATH ON)Ứng dụng C (dùng C API)
cmake
add_executable(my_c_app main.c)
target_include_directories(my_c_app PRIVATE ${CVEDIX_SDK_DIR}/include)
target_link_directories(my_c_app PRIVATE ${CVEDIX_SDK_DIR}/lib/x86_64)
target_link_libraries(my_c_app PRIVATE cvedix_capi)Chỉ cần link cvedix_capi — nó tự kéo cvedix_core theo.