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

Clang 18.1.5升级后std::println出现arm64链接错误求助

问题解决:Clang 18.1.5升级后std::println链接错误

Clang 18.1.5并未移除std::println或<print>头文件的支持,你遇到的链接错误是因为编译时使用了brew安装的新版Clang,但链接阶段调用了系统默认的旧版libc++,而旧版libc++中不存在std::__1::__is_posix_terminal这个新增符号。

解决步骤:

  • 先获取brew安装的llvm路径:
    LLVM_PATH=$(brew --prefix llvm)
    
  • 修改你的CMakeLists.txt,明确指定使用brew的Clang工具链及对应libc++:
    # 设置编译器为brew的clang++
    set(CMAKE_CXX_COMPILER "${LLVM_PATH}/bin/clang++")
    # 指定使用libc++标准库
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
    # 添加libc++的链接路径及运行时路径
    link_directories("${LLVM_PATH}/lib/c++")
    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath,${LLVM_PATH}/lib/c++")
    # 确保C++23标准启用
    set(CMAKE_CXX_STANDARD 23)
    set(CMAKE_CXX_STANDARD_REQUIRED ON)
    
  • 清理原有构建缓存,重新编译:
    rm -rf build
    mkdir build && cd build
    cmake ..
    make
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 20:59:51