GLIBCXX versions

后端 未结 3 1640
旧时难觅i
旧时难觅i 2020-12-04 23:59

If I compile a C++ program on my machine, and run it on another one (with older software) I get: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9\' not found.

3条回答
  •  北海茫月
    2020-12-05 00:35

    Use readelf -a and objdump -x to inspect ELF files in preference to strings.

    Actually, all the GLIBCXX_* versions don't apply to the entire library, but to each symbol (symbol versioning, see DSO-howto). So you can have e.g: std::char_traits::eq@@GLIBCXX_3.4.5 and std::ios_base::Init::~Init()@@GLIBCXX_3.4 on the same library file.

    The fact that your program needs GLIBCXX_3.4.9 probably means that it has been linked against a symbol that has been introduced/has changed semantics on GLIBCXX_3.4.9.

提交回复
热议问题