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

Linux运行Flutter桌面应用遭遇CMake编译错误求助

解决Flutter Linux桌面构建时的CMake链接错误

错误核心:clang链接器无法找到libstdc++库,这是GNU标准C运行库,通常由系统缺少依赖或编译器配置异常导致。

解决方案

1. 安装GNU标准C++库

根据你的Linux发行版执行对应命令:

  • Debian/Ubuntu系:
    sudo apt update && sudo apt install libstdc++6
    
  • Fedora/RHEL系:
    sudo dnf install libstdc++-devel
    
  • Arch Linux:
    sudo pacman -S gcc-libs
    

2. 切换默认C编译器为g(解决clang兼容性问题)

若安装库后仍报错,可切换到GNU的g++编译器:

  1. 安装g++:
    # Debian/Ubuntu
    sudo apt install g++
    # Fedora/RHEL
    sudo dnf install gcc-c++
    # Arch
    sudo pacman -S gcc
    
  2. 配置CMake使用g++构建项目:
    在项目根目录执行:
    flutter clean
    cmake -S . -B build/linux/x64/debug -DCMAKE_CXX_COMPILER=g++
    flutter run -d linux
    
    也可通过update-alternatives设置系统默认C++编译器:
    sudo update-alternatives --config c++
    
    选择g++对应的选项即可。

3. 配置clang使用libc替代libstdc(坚持用clang的场景)

若想继续使用clang,可切换到LLVM的libc++库:

  1. 安装libc++依赖:
    # Debian/Ubuntu
    sudo apt install libc++-dev libc++abi-dev
    # Fedora/RHEL
    sudo dnf install libcxx-devel libcxxabi-devel
    # Arch
    sudo pacman -S libc++ libc++abi
    
  2. 修改CMake配置强制使用libc++:
    在项目的linux/CMakeLists.txt开头添加:
    set(CMAKE_CXX_STANDARD_LIBRARY "libc++")
    
    或构建时直接指定:
    flutter clean
    cmake -S . -B build/linux/x64/debug -DCMAKE_CXX_FLAGS="-stdlib=libc++"
    flutter run -d linux
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 13:43:09