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

Flutter Linux构建错误:CMake无法编译简单测试程序

解决Flutter Linux构建时clang找不到libstdc的问题

在Kubuntu 22.04环境下配置VSCode开发Flutter应用,Web模拟器运行正常,但构建Linux版本时出现链接错误,核心提示为:

/usr/bin/ld: cannot find -lstdc++: No such file or directory

已尝试重装clang、确认libstdc6/build-essential/g已安装,但问题未解决。以下是针对性解决方案:

方案1:修复libstdc++的软链接

clang可能无法定位到libstdc.so的正确路径,可手动创建软链接:

  1. 查找系统中libstdc++的实际位置:
    find /usr -name "libstdc++.so*"
    
    正常输出会包含/usr/lib/x86_64-linux-gnu/libstdc++.so.6(这是实际的库文件)。
  2. 为clang创建指向该库的软链接:
    sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib/libstdc++.so
    

方案2:强制使用g++编译器

既然系统已安装可用的g++,可让Flutter构建时改用g++:

方法A:修改项目CMake配置

在项目根目录的linux/CMakeLists.txt开头添加以下配置:

set(CMAKE_C_COMPILER "/usr/bin/gcc")
set(CMAKE_CXX_COMPILER "/usr/bin/g++")

方法B:临时设置环境变量构建

在终端执行以下命令后再构建:

export CC=gcc
export CXX=g++
flutter run -d linux

方案3:验证并修复clang的依赖

如果clang本身缺少标准库支持,安装完整的clang相关包:

sudo apt install clang clang-tools libc++-dev libc++abi-dev

手动测试clang++是否恢复正常:
创建test.cpp文件:

#include <iostream>
int main() {
    std::cout << "Test" << std::endl;
    return 0;
}

编译并运行测试:

clang++ test.cpp -o test && ./test

若能正常输出"Test",说明clang配置已修复,再重新构建Flutter项目。

方案4:确认libstdc++安装状态

检查libstdc++6是否正确安装:

dpkg -l libstdc++6

确保输出中Status列显示ii(已安装),若未安装则执行:

sudo apt install libstdc++6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 13:35:20