【发布时间】:2020-03-12 19:26:30
【问题描述】:
我已经构建了一个在我的系统(fedora 30)中运行的二进制文件,但是当我想在 ubuntu 上运行它时出现以下错误:
/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by ./App)
解决这个问题的标准方法是什么?还是我总是需要在各种操作系统上重新构建我的应用程序才能运行它?
【问题讨论】:
-
这不是 glibc 的版本标签,而是 GNU (GCC) libstdc++ 的。
-
除非您使用特定于您的 Fedora 操作系统的 API,或者您的 Ubuntu 环境与您的 Fedora 环境的架构不同,否则您通常会提供安装程序或至少将所有程序依赖项与你的代码。如果架构不匹配,则需要在本地交叉编译或重新编译。
标签: c++ g++ dynamic-linking