
librealsense macOS 源码构建与打包指南从工具链安装到应用分发【免费下载链接】librealsenseRealSense SDK项目地址: https://gitcode.com/GitHub_Trending/li/librealsense本篇指南以仓库 doc/installation_osx.md 为主线完整讲解 RealSense SDKlibrealsense在 macOS 平台上的源码编译、CMake 配置、常见构建错误排查以及应用打包流程。读完本文你将能够在本机从零搭建构建环境、生成 Xcode 工程并产出可用的librealsense2.dylib并掌握把 SDK 及其依赖libusb正确捆绑进 macOS 应用程序的方法。一、macOS 支持现状与使用前提librealsense 对 macOS 的支持并非完整覆盖 SDK 全部功能官方文档在开头即给出了明确提示R200 与 ZR300 设备需要功能子集的 legacy librealsense原文档外部链接仓库本身不包含该代码当前主线分支不再提供完整支持当前版本的限制RealSense Viewer 不受支持BUILD_GRAPHICAL_EXAMPLES相关的图形工具在当前 macOS 版本不可用运动传感器IMU被禁用。此外从macOS 12Monterey起由于 macOS 的 USB 安全策略变化以及需要覆盖系统默认的 UVC 驱动绝大多数基于 libusb 的 librealsense 工具都必须以**提升权限sudo**运行例如# 示例实际可执行文件位于构建产物的 Release 目录见下文说明 sudo examples/rs-multicam sudo examples/rs-enumerate-devices sudo examples/rs-hello-realsense sudo examples/rs-depth从当前仓库的目录结构看原文档中提到的示例对应的源码分别位于 examples/multicam/rs-multicam.cpp、examples/hello-realsense/rs-hello-realsense.cpp、examples/C/depth/rs-depth.c而设备枚举工具位于 tools/enumerate-devices/ 目录下。构建完成后可执行文件会被输出到构建目录/构建类型/下该行为由 CMake/unix_config.cmake 中的CMAKE_RUNTIME_OUTPUT_DIRECTORY设置决定默认构建类型为Release因此实际运行路径形如./Release/rs-hello-realsense。二、从源码构建完整环境准备2.1 安装命令行工具链macOS 上编译源码需要 Xcode 命令行工具。两种方式任选其一# 方式一仅命令行工具推荐 sudo xcode-select --install # 方式二通过 App Store 下载 Xcode 6.0Xcode 6.0 是官方文档给出的最低版本要求。配置阶段还需要重置开发者目录构建章节会用到sudo xcode-select --reset2.2 安装 Homebrew 包管理器通过终端安装 Homebrew然后用它安装编译依赖brew install cmake libusb pkg-config openssl各依赖的作用cmake构建系统。librealsense 要求CMake 3.10 及以上见仓库顶层 CMakeLists.txt 的cmake_minimum_required(VERSION 3.10)Homebrew 提供的版本通常满足要求也可从 CMake 官方站点下载更新版本libusbUSB 通信后端核心依赖。macOS 上的 libusb 需要链接 Apple 的CoreFoundation与IOKit框架该链接逻辑在 CMake/external_libusb.cmake 中有明确实现pkg-config辅助查找系统库openssl仅在开启固件更新检查CHECK_FOR_UPDATES时才需要详见下文 CMake 配置。2.3 克隆仓库并生成构建工程git clone https://github.com/realsenseai/librealsense.git cd librealsense mkdir build cd build sudo xcode-select --reset cmake .. -DBUILD_EXAMPLEStrue -DBUILD_GRAPHICAL_EXAMPLEStrue -DFORCE_RSUSB_BACKENDON make -j2构建过程会生成librealsense2.dylib共享库、示例程序与工具。make -j2使用双核并行编译可按机器核数调整并行度。三、核心 CMake 配置选项与 macOS 相关源码佐证3.1 FORCE_RSUSB_BACKENDmacOS 上强制启用的 USB 后端FORCE_RSUSB_BACKEND是 macOS 构建必须开启的选项。官方选项说明为Use RS USB backend, mandatory for Win7/MacOS/Android, optional for Linux见 CMake/lrs_options.cmake。从源码看这个必须是构建系统强制保证的在 CMake/unix_config.cmake 中当平台为APPLE时无条件将FORCE_RSUSB_BACKEND置为ON并据此选定RS2_USE_LIBUVC_BACKEND后端而 src/backend.cpp 通过预处理指令保证有且仅有一个UVC 后端宏被定义macOS 上即走 UVC support will be provided via libuvc / libusb backend 分支并因此引入hid/、uvc/、rsusb-backend/、libuvc/等源码模块见 src/CMakeLists.txt。这也解释了为何原文档强调 macOS 12 必须用sudo运行工具RSUSB 后端直接通过 libusb 访问底层 USB 设备需要越过系统 UVC 驱动的权限门槛。3.2 CHECK_FOR_UPDATESmacOS 默认关闭的更新检查CHECK_FOR_UPDATES用于构建版本更新检查功能依赖 libcurl OpenSSL。由于 macOS 默认不自带 OpenSSL该选项在 macOS 上默认关闭仅 Linux/Windows 默认开启见 CMake/lrs_options.cmake# This feature requires OpenSSL installation on Linux/OSX, OSX normally does not come with OpenSSL integrated(Thats why default is OFF on OSX) if (NOT APPLE) option(CHECK_FOR_UPDATES Checks for versions updates ON) else() option(CHECK_FOR_UPDATES Checks for versions updates OFF) endif()若手动开启-DCHECK_FOR_UPDATESON则必须确保 OpenSSL 可被找到否则触发下文 4.2 节的错误且 CMake/external_libcurl.cmake 会额外要求链接 OpenSSL 与CoreFoundation、SystemConfiguration框架。3.3 常用构建选项速查以下选项均定义于 CMake/lrs_options.cmake可结合实际需求组合选项默认值说明BUILD_EXAMPLESON构建非图形示例如 rs-hello-realsense、rs-captureBUILD_GRAPHICAL_EXAMPLESON构建图形示例Viewer、深度质量工具等隐含启用BUILD_GLSL_EXTENSIONSmacOS 当前版本不支持 ViewerFORCE_RSUSB_BACKENDOFFmacOS 上强制 ON使用 RSUSBlibuvc/libusb后端macOS 必选CHECK_FOR_UPDATESmacOS 上 OFF固件/版本更新检查依赖 OpenSSLBUILD_SHARED_LIBSON构建共享库产出librealsense2.dylibBUILD_UNIT_TESTSOFF构建单元测试BUILD_PYTHON_BINDINGSOFF构建 Python 绑定BUILD_WITH_CUDAOFF启用 CUDA 加速BUILD_WITH_OPENMPOFF启用 OpenMP 多线程四、构建常见错误与解决方案4.1ld: library not found for -lusb-1.0部分 Mac 系统在make或 Xcode 编译时报找不到 libusb 链接库。官方给出的规避方式是设置环境变量/bin/launchctl setenv LIBRARY_PATH /usr/local/libLIBRARY_PATH会被链接器作为额外的库搜索路径使-lusb-1.0能命中 Homebrew 安装的 libusb。若 Homebrew 前缀不同如 Apple Silicon 下为/opt/homebrew需按实际安装路径调整。4.2Could NOT find OpenSSL该错误通常在设置-DCHECK_FOR_UPDATESON时出现见 3.2 节。规避方法是把 OpenSSL 安装根目录导出为全局变量export OPENSSL_ROOT_DIRbrew --prefix openssl让 CMake 的find_package(OpenSSL REQUIRED)CMake/external_libcurl.cmake能够定位到 Homebrew 的 OpenSSL。4.3 更多构建配置仓库 wiki 页面提供了更完整的构建配置说明原文档外部链接仓库内可对照的权威配置清单即 CMake/lrs_options.cmake 本身其中每个选项都带有注释与默认值是排查构建行为的第一手资料。五、打包发布 macOS 应用程序将 SDK 集成到自有 macOS 应用中时有两个关键步骤否则运行时会出现 dylib 加载失败。5.1 用 install_name_tool 修复动态链接路径librealsense 运行依赖 libusb发布时必须将 libusb 一并捆绑进应用。由于 Homebrew 安装的 libusb 动态库路径是绝对路径如/usr/local/opt/libusb/lib/libusb-1.0.0.dylib直接分发会导致目标机器上无法加载。使用install_name_tool将其改为相对运行时路径rpathinstall_name_tool -change /usr/local/opt/libusb/lib/libusb-1.0.0.dylib rpath/libusb-1.0.0.dylib librealsense2.dylib该命令把librealsense2.dylib中对 libusb 的引用从绝对路径改写为rpath/libusb-1.0.0.dylib使应用在启动时通过自身的 rpath 搜索到随包分发的库。5.2 拷贝动态库到 Frameworks 目录将以下两个动态库放入应用包的Frameworks目录# 拷贝到 YourApp.app/Contents/Frameworks/ libusb-1.0.0.dylib librealsense2.dylib同时应确保应用的 Mach-O 链接设置中 rpath 指向executable_path/../Frameworks或通过install_name_tool -add_rpath添加这样rpath/libusb-1.0.0.dylib才能被正确解析。六、小结macOS 上使用 librealsense 的完整路径可概括为确认设备与功能支持范围R200/ZR300 走 legacy 分支macOS 12 需 sudo、不支持 Viewer 与 IMU→ 安装 Xcode 工具链与 Homebrew 依赖 → 以FORCE_RSUSB_BACKENDON配置并编译 → 通过环境变量规避 libusb/OpenSSL 链接问题 → 用install_name_tool与 Frameworks 目录完成应用打包。构建系统的相关行为均可在 CMake/unix_config.cmake、CMake/lrs_options.cmake 与 src/backend.cpp 中逐行验证建议在遇到与预期不符的行为时优先回到这些文件确认当前版本的默认配置。【免费下载链接】librealsenseRealSense SDK项目地址: https://gitcode.com/GitHub_Trending/li/librealsense创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考