cmake_minimum_required(VERSION 3.24) include(${CMAKE_SOURCE_DIR}/cmake/cmakebase.cmake) include(${CMAKE_SOURCE_DIR}/cmake/project.cmake) include(${CMAKE_SOURCE_DIR}/cmake/ss928.cmake) message(STATUS "========================") message(STATUS ${CMAKE_SYSTEM_NAME}) message(STATUS ${CMAKE_SYSTEM_PROCESSOR}) message(STATUS "========================") set(CMAKE_CXX_STANDARD 14) # 设置使用C++11标准 set(CMAKE_CXX_STANDARD_REQUIRED ON) # 确保编译器遵循C++11标准 PROJECT(image_framework) set(CMAKE_SOURCE_DIR "./") #set(_GLIBCXX_USE_CXX11_ABI 1) # 检查Opencv版本 find_package(OpenCV 4.10 REQUIRED) if(NOT OpenCV_FOUND) message(FATAL_ERROR "OpenCV > 4.10 not found.") endif() MESSAGE(${OpenCV_VERSION}) message(STATUS "OpenCV include dirs: ${OpenCV_INCLUDE_DIRS}") message(STATUS "OpenCV library dirs: ${OpenCV_LIBRARY_DIRS}") message(STATUS "OpenCV libraries: ${OpenCV_LIBRARIES}") set(OPENGL_opengl_LIBRARY /usr/lib/aarch64-linux-gnu/libOpenGL.so) set(OPENGL_glx_LIBRARY /usr/lib/aarch64-linux-gnu/libGLX.so) set(X11_X11_LIB /usr/lib/aarch64-linux-gnu/libX11.so) find_package(Open3D REQUIRED) if(NOT Open3D_FOUND) message(FATAL_ERROR "Open3D not found.") endif() MESSAGE(${Open3D_VERSION}) message(STATUS "Open3D include dirs: ${Open3D_INCLUDE_DIRS}") message(STATUS "Open3D library dirs: ${Open3D_LIBRARY_DIRS}") message(STATUS "Open3D libraries: ${Open3D_LIBRARIES}") # 检测操作系统和架构 # if(CMAKE_SYSTEM_NAME STREQUAL "Linux") # if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") # set(PLATFORM "linux/x64") # elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") # set(PLATFORM "linux/aarch64") # else() # message(FATAL_ERROR "Unsupported architecture on Linux") # endif() # elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") # if(CMAKE_SIZEOF_VOID_P EQUAL 8) # set(PLATFORM "windows/x64") # else() # message(FATAL_ERROR "Unsupported architecture on Windows") # endif() # else() # message(FATAL_ERROR "Unsupported operating system") # endif() # 输出当前系统和架构 message(STATUS "operating system: ${PLATFORM}") # 设置输出目录 SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/output/") # 设置头文件目录 INCLUDE_DIRECTORIES( "/opt/HuarayTech/MVviewer/include/" /usr/local/include ${CMAKE_SOURCE_DIR}/include/ ${CMAKE_SOURCE_DIR}/include/open3d/ ${CMAKE_SOURCE_DIR}/include/open3d/3rdparty ${CMAKE_SOURCE_DIR}/include/eigen3/ ${CMAKE_SOURCE_DIR}/include/opencv4.10/ ${CMAKE_SOURCE_DIR}/include/Livox/ ${CMAKE_SOURCE_DIR}/image_framework/ ${CMAKE_SOURCE_DIR}/image_framework/algorithm/ ${CMAKE_SOURCE_DIR}/image_framework/driver/camera/ ${CMAKE_SOURCE_DIR}/image_framework/driver/livox/ ${CMAKE_SOURCE_DIR}/image_framework/plugins/ ${CMAKE_SOURCE_DIR}/image_framework/thead/ ${CMAKE_SOURCE_DIR}/image_framework/utils/Ini ${CMAKE_SOURCE_DIR}/image_framework/utils/Log ) # 设置依赖库 .a LINK_DIRECTORIES( /usr/lib/aarch64-linux-gnu ) # fpermissive set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive") # 设置原文件 aux_source_directory(${CMAKE_SOURCE_DIR}/image_framework/ CORE_LIST) aux_source_directory(${CMAKE_SOURCE_DIR}/image_framework/algorithm/ CORE_LIST) aux_source_directory(${CMAKE_SOURCE_DIR}/image_framework/plugins CORE_LIST) aux_source_directory(${CMAKE_SOURCE_DIR}/image_framework/thead CORE_LIST) aux_source_directory(${CMAKE_SOURCE_DIR}/image_framework/driver/camera CORE_LIST) aux_source_directory(${CMAKE_SOURCE_DIR}/image_framework/driver/livox CORE_LIST) aux_source_directory(${CMAKE_SOURCE_DIR}/image_framework/utils/Ini CORE_LIST) aux_source_directory(${CMAKE_SOURCE_DIR}/image_framework/utils/Log CORE_LIST) add_executable(${PROJECT_NAME} ${CORE_LIST}) set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "-Wl,-rpath-link,/usr/lib/aarch64-linux-gnu") target_link_libraries( ${PROJECT_NAME} ${SYSTEM_LINK_LIB} ${OpenCV_LIBS} livox_sdk_static pthread dl libstdc++.so.6 Open3D::Open3D libxcb.so.1 libXau.so.6 libXdmcp.so.6 libGLdispatch.so.0 libbsd.so libbsd.so.0 libbsd.so.0.10.0 ) set(OUTPUT_LIB_DIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/lib) add_custom_target(cpfiles ALL DEPENDS ${PROJECT_NAME}) add_library(DetectDriver MODULE ${CORE_LIST}) target_link_libraries( DetectDriver ${SYSTEM_LINK_LIB} ${OpenCV_LIBS} livox_sdk_static pthread dl ) set_property(TARGET DetectDriver PROPERTY POSITION_INDEPENDENT_CODE ON) #添加-fPIC set_target_properties(DetectDriver PROPERTIES LINK_FLAGS "-fPIC")