Fedora 40下g++静态编译C++程序链接库缺失错误求助
解决Fedora 40下静态编译C++程序的链接库缺失问题
Fedora 40默认未预装静态版本的标准库与C库,这是你静态编译时出现-lstdc++、-lm、-lc找不到错误的核心原因,按以下步骤处理:
安装静态库依赖包
执行命令安装对应的静态开发包:
sudo dnf install glibc-static libstdc++-static
glibc-static包含-lc(C标准库)和-lm(数学库)的静态版本libstdc++-static提供-lstdc++(C++标准库)的静态版本
验证安装状态
运行命令确认包已成功安装:
rpm -q glibc-static libstdc++-static
若输出类似glibc-static-2.39-9.fc40.x86_64和libstdc++-static-14.1.1-1.fc40.x86_64的版本信息,说明安装有效。
重新执行编译
再次运行你的编译命令:
g++ -O3 -static -std=c++20 memlib.cpp mem.cpp
额外排查(若问题仍存在)
- 检查g版本兼容性:执行
g++ --version,Fedora 40自带的g(通常为14.x版本)完全支持C++20静态编译 - 确认静态库搜索路径:运行
ld -lstdc++ --verbose | grep SEARCH,查看输出是否包含/usr/lib64(64位系统)或/usr/lib(32位系统),静态库默认安装在这些路径中
内容的提问来源于stack exchange,提问作者Grzesiek
相关产品推荐
相关产品推荐

