GLIBCXX_3.4.21执行时

时间:2017-10-23 13:39:58

标签: c++ gcc

我有一个c ++代码,可以在我的PC上编写和编译,并在远程服务器上执行。 我最近更改了我的电脑,所以设置了一切最新功能。但是现在在未更改的服务器上执行我的代码失败了,出现此错误:

namespace color
{
    inline constexpr Color red{true, false, false};
    inline constexpr Color green{false, true, false};
    inline constexpr Color blue{false, false, true};
}

我在网上看了一下,似乎是gcc错误。事实上,它在我的服务器上的电脑5.4和4.8上。我尝试升级它但出现以下错误:

./ReactionThermo: relocation error: ./ReactionThermo: symbol _ZTINSt8ios_base7failureB5cxx11E, version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference

我尝试了apt-get -f install命令,但它没有改进思考。

任何想法。

由于

PS:我认为它看起来像GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference但是我不想降低cpp,而是要升级它

1 个答案:

答案 0 :(得分:0)

通常,您需要使用系统编译器(或其他供应商支持的编译器,例如SUSE Linux Enterprise Server或Developer Toolset的工具链模块),在您要支持的最旧操作系统版本上构建C / C ++二进制文件。红帽企业Linux)。您无法在较新的系统上编译程序,并将其复制到具有较旧(或不同)操作系统版本的其他环境中。在简单的情况下,它可能会起作用,但在其他情况下,您将在运行时获得动态链接器故障(就像您一样),甚至是静默数据损坏。

此外,您应该查看pbuildermock等构建工具,以便在定义良好的构建环境中自动构建软件。