Executando a biblioteca C ++ 11 com a libc mais antiga

0

Eu escrevi uma biblioteca compartilhada usando os recursos do C ++ 11, compilados com o gcc 4.8, libc 2.18, que precisa ser executado na máquina CentOS 6 de um cliente, que possui o gcc 4.4.7, libc 2.12. Existem alguns símbolos nesta biblioteca que não são encontrados na libc 2.12, então como eu posso usar esta biblioteca no CentOS 6. Eu tenho flexibilidade em como, onde, qual máquina a biblioteca pode ser compilada, mas eventualmente ela deve ser usada no cliente CentOS 6, onde os pacotes não podem ser tocados. É correto compilá-lo com o DevTools-2 no CentOS 6 ou pode haver qualquer problema relacionado à ABI. Por favor, deixe-me saber se existem outras sugestões. Agradecemos antecipadamente.

    
por Dinesh 23.06.2016 / 12:33

1 resposta

0

C++11 features, compiled with gcc 4.8

Por que não g ++ 4.8?

Sugira: Compile sua biblioteca estaticamente com libstdc ++. a → Eu acho que as funções do C ++ 11 estão em *libstdc++-devel , não glibc.

O devtoolset-2-libstdc ++ - devel-4.8.2 vem com bibliotecas estáticas:

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

por 23.06.2016 / 14:44

Tags