Como fazer o conjunto de ferramentas GCC do Linux do Eclipse CDT resolver cabeçalhos da biblioteca padrão C ++?

12

No Ubuntu 12.04 LTS eu instalei o plugin Eclipse CDT e abri o novo projeto hello world para testar tudo. Quando eu estava criando o projeto, escolhi o único conjunto de ferramentas: "Linux GCC"

Quando o projeto é criado, no entanto, diz que

#include<iostream>
#include<cstdlb>

não estão resolvidos. Assim, as linhas com cout e endl não podem ser usadas e não podem encontrar std .

using namespace std; também está causando problemas.

Como posso obter minhas diretivas #include para cabeçalhos de biblioteca padrão reconhecidos, para suportar o código usando o namespace std ?

    
por Muhammad Khan 13.06.2012 / 03:06

1 resposta

4

Se você teve o mesmo problema que eu, suspeito que seu projeto foi criado, mas a conclusão de código / o realce de código falha? Acabei de encontrar algumas notas que podem ser úteis. Aqui está o que eu fiz:

  • Propriedades do Projeto- >

  • Geral C / C ++

  • Caminhos e símbolos

  • selecione o idioma apropriado

  • Clique em "Adicionar" e adicione os diretórios específicos da versão do compilador

Para o idioma 'GNU C ++', adicionei:

  /usr/include
  /usr/include/c++/4.6
  /usr/include/c++/4.6/bits
  /usr/include/i386-linux-gnu
  /usr/include/i386-linux-gnu/bits
  /usr/include/c++/4.6/debug
  /usr/include/c++/4.6/i686-linux-gnu
  /usr/include/c++/4.6/i686-linux-gnu/bits

Para o "GNU C", adicionei:

  /usr/include
  /usr/include/i386-linux-gnu
  /usr/include/i386-linux-gnu/bits

TBH, eu não acho que todos os diretórios acima são realmente necessários (você provavelmente poderia remover os diretórios de 'bits'), mas a lista acima funcionou para mim no momento.

Agora estou usando o Eclipse Indigo (versão 3.7.2) do eclipse.org e ele localiza e adiciona automaticamente os diretórios de inclusão corretos. A lista é diferente para mim:

/usr/include/c++/4.6
/usr/include/c++/4.6/i686-linux-gnu
/usr/include/c++/4.6/backward
/usr/lib/gcc/i686-linux-gnu/4.6/include
/usr/local/include
/usr/lib/gcc/i686-linux-gnu/4.6/include-fixed
/usr/include/i386-linux-gnu
/usr/include

Evidentemente, adicione apenas os diretórios de inclusão que realmente existem em seu sistema; -)

    
por jamesodhunt 23.08.2012 / 23:48