Isso está procurando um arquivo de cabeçalho C ++, normalmente parte de um pacote de desenvolvimento, como libstdc ++ (com uma versão e "-dev" ou "-devel" como parte do nome do pacote).
Por exemplo, no Debian (onde o Ubuntu obtém a maioria dos seus pacotes), eu tenho um "libstdc ++ 6-4.6-dev" em minha máquina Debian 7, que possui este arquivo:
/usr/include/c++/4.6/string
Os arquivos de cabeçalho C
têm um sufixo .h
; C++
como regra, não (embora em alguns sistemas você possa ver .hh
).
Quando você configurou o compilador de complementos, ele usou configurações (consulte seus logs ...) que informaram onde esperar encontrar bibliotecas. Você provavelmente terá que construir seu próprio libstdc ++ para compatibilidade com o compilador mais novo. Novamente, você terá que definir a opção --prefix
ao configurar, para que o compilador e a biblioteca trabalhem juntos.
Abordando um acompanhamento: se o seu compilador está procurando em /usr/local
, então você poderia contornar isso alterando sua variável CPPFLAGS
, adicionando /usr/include
(e possivelmente /usr/include/c++/4.8
, etc.), embora também haja caminho da biblioteca em LDFLAGS
a considerar). Para ver os nomes de caminho usados pelo seu pacote libstdc ++, use
dpkg -L $(dpkg -l | awk '{print $2}' |grep -E 'libstdc++.*dev')