Novos problemas de ABI do G ++
Eu tive um problema com a nova ABI introduzida para C ++ 11 no GCC. Após a atualização para o GCC 5.3, meu projeto não é mais compilado. As mensagens de erro que recebo são simples:
undefined reference to `tokenize(std::__cxx11::basic_string' ...more characters
ou
undefined reference to `extract(std::string const&)'
Então, parece que eu errei alguma coisa e o GCC não consegue decidir se eu quero a ABI antiga ou a nova (a__cxx11::
parte está faltando em algumas mensagens de erro e está presente em outras)?
Tentei várias soluções para resolver o problema:
passagem-D_GLIBCXX_USE_CXX11_ABI=0
para o GCC,passagem-D_GLIBCXX_USE_CXX11_ABI=1
para o GCC,definindo a macro diretamente no código fonte,definindo oabi_tag
atributo nas declarações que o GCC reclamou quando passou no-Wabi-tag
bandeira,Infelizmente, nenhum deles funcionou (ou seja, permitiu a compilação do código). A única coisa que sei é que apenas funções retornandostd::string
ou tomá-lo como parâmetro falha ao vincular. O que é esperado, dado o que li sobre o problema na Internet. Não consegui reproduzir o problema em um programa de exemplo simples para apresentá-lo aqui.
Existe alguma solução óbvia para o meu problema, que estou perdendo?