I have written a shared library using C++11 features, compiled with gcc 4.8, libc 2.18, which needs to be run on a client's CentOS 6 machine, which has gcc 4.4.7, libc 2.12. There are some symbols in this library which are not found in libc 2.12, so how can I use this library on CentOS 6. I have flexibility in how, where, which machine the library can be compiled, but eventually it should be usable on client CentOS 6, where packages can not be touched. Is it fine to compile it with DevTools-2 on CentOS 6 or there can be any ABI related issues. Please let me know if there are any other suggestions. Thanks in advance.

2 Answers 2


Compile on the same system as the one running it. You might need to recompile for a version jump of the distribution (e.g. 7 to 8) and sometimes in berween.

If you use different compiler versions you might run into incompatibilities between the shared helper libraries for the compiler, base C or C++ (most likely) libraries, or assorted external dependencies. Not a mess I'd like to have to debug.


C++11 features, compiled with gcc 4.8

? Why not g++ 4.8 ?

Suggest : Compile your library statically with libstdc++.a → I think the C++11 functions are in *libstdc++-devel, not glibc.

The devtoolset-2-libstdc++-devel-4.8.2 comes with static libraries :

/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/{ libstdc++.a, libstdc++_nonshared.a }

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.