符号_ZNSt8__detail15_List_node_base7_M_hookEPS0_,版本GLIBCXX_3.4.15未在文件libstdc ++中定义.so.6带有链接时间参考

时间:2014-08-12 12:18:45

标签: c++

我使用上面提到的配置在编译机器上编译了下面的代码。汇编成功了。但是在执行时遇到了上述错误 ldd -r my_executable

#include <iostream>
#include <list>
using namespace std;

int main()
{
    list<int> mylist;
    mylist.push_back(1);
    mylist.push_back(2);
    mylist.push_back(3);

    cout << "\nList:\n";
    for(list<int>::iterator it = mylist.begin(); it != mylist.end(); it++)
    {
        cout << *it << "\n";
    }
}

编译机器详细信息: glibc版本2.14.1 libstdc ++版本GLIBCXX_3.4.16  (运行命令后输出:strings /usr/lib/libstdc++.so.6 | grep LIBCXX)

目标机器详细信息: glibc版本2.12.90 libstdc ++版本GLIBCXX_3.4.14 (运行命令后输出:strings /usr/lib/libstdc++.so.6 | grep LIBCXX)

1 个答案:

答案 0 :(得分:1)

您已经在具有一个GCC版本的计算机上构建了程序,因此您的程序依赖于该版本GCC的共享库,然后您尝试在具有旧版GCC的计算机上运行它,没有必要的共享库。

StackOverflow上已有数百个答案。最简单的答案是在目标机器上构建程序,因此它使用目标机器上存在的GCC版本构建。