You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1 Macbook编译C++代码时出现arm64架构Boost符号缺失错误

问题分析与解决

问题根源

你遇到的链接错误是因为CMake配置中未链接Boost.Random库。Boost.Random模块里的random_device并非纯头文件实现,需要依赖编译后的boost_random库,而你当前的find_package指令仅指定了system和filesystem组件,遗漏了random。

修复方案

修改CMakeLists.txt,在find_package的COMPONENTS列表中添加random:

cmake_minimum_required(VERSION 3.23)
project(Banko)

set(CMAKE_CXX_STANDARD 23)
add_executable(Banko main.cpp Common.cpp Common.hpp)
# 新增random组件
find_package(Boost 1.80.0 COMPONENTS system filesystem random REQUIRED)
include_directories(${Boost_INCLUDE_DIRS})
target_link_libraries(Banko ${Boost_LIBRARIES})

额外说明

  • Boost库分为两类:纯头文件库(如boost/algorithm)和需要链接的编译型库(如random、system)。random_device属于后者,必须显式声明链接。
  • 通过Homebrew安装的Boost,CMake的find_package可以自动定位到random组件的库文件,无需手动指定路径。

内容的提问来源于stack exchange,提问作者Unguest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 23:40:57