cmake_minimum_required(VERSION 3.10) project(BusbarRouter CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # 包含目录 include_directories(${PROJECT_SOURCE_DIR}/include) # 库的源文件 set(SOURCES src/vector3.cpp src/busbar_segment.cpp src/segment_generator.cpp src/space_analyzer.cpp src/busbar_planner.cpp src/busbar_planner_api.cpp ) # ========== 创建静态库 ========== add_library(busbar_router STATIC ${SOURCES}) # ========== 同时创建动态库(导出 API)========== add_library(busbar_router_shared SHARED ${SOURCES}) set_target_properties(busbar_router_shared PROPERTIES OUTPUT_NAME "busbar_router" VERSION 1.0.0 SOVERSION 1 ) target_compile_definitions(busbar_router_shared PRIVATE BUSBAR_PLANNER_EXPORTS) set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) # ========== 可执行文件链接静态库 ========== add_executable(busbar_example src/main.cpp) target_link_libraries(busbar_example busbar_router) # 链接静态库