Construa com clang para versões mais antigas do ubuntu

0

Então o problema começou quando atualizei o Ubuntu Vivid (15.04). Agora, clang-3.5 depende de libstdc++-4.9 (em vez da versão anterior de 4.8 ) e meus programas compilados não são executados no Trusty (14.04):

./my_app: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version 'GLIBCXX_3.4.20' not found (required by ./my_app)

Tanto na máquina de desenvolvimento quanto na máquina de destino g++ e gcc version 4.8.4 está instalado. Mas a nova versão clang adiciona uma dependência de versão necessária de libstdc++6 on GLIBCXX_3.4.20 , que existe somente no desenvolvimento e não na máquina de destino.

Alguma ideia de como resolver este problema?

UPDATE :

Existe uma solução aqui sugerindo vincular estaticamente a libstdc++ e há uma boa leitura aqui investigando os prós e contras dessa abordagem. Mas existem outras possibilidades?

    
por Yan Foto 11.09.2015 / 17:27

1 resposta

-1

Caso seu problema ainda não tenha sido resolvido, posso sugerir duas opções além da vinculação estática:

  1. Agrupe todas as bibliotecas necessárias aos seus aplicativos e configure LD_LIBRARY_PATH e / ou rpath para seus binários.
  2. Se você está desenvolvendo aplicativos do lado do servidor, enviá-los como imagens do Docker herdadas do Ubuntu Vivid também pode ser uma opção.
por Vadim Semenov 24.05.2016 / 23:37