Pergunta

Quando tento

$ make depend -f gcc.mak

a middleware na minha máquina Ubuntu eu recebo este

/usr/include/../include/limits.h:125:26: error: no include path in which to search for limits.h

Este é o conteúdo ao redor limits.h: 125:

/* Get the compiler's limits.h, which defines almost all the ISO constants.

    We put this #include_next outside the double inclusion check because
    it should be possible to include this file more than once and still get
    the definitions from gcc's header.  */
#if defined __GNUC__ && !defined _GCC_LIMITS_H_
/* `_GCC_LIMITS_H_' is what GCC's file defines.  */
# include_next <limits.h>
#endif

Eu tentei configuração

$ export INCLUDE=/usr/lib/gcc/x86_64-linux-gnu/4.3/include-fixed/
$ export C_INCLUDE_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.3/include-fixed/
$ export CPLUS_INCLUDE_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.3/include-fixed/

(que é onde eu encontrei um outro limits.h no meu sistema). Já tenho libc6-dev instalado, pode ser que a sua limits.h foi substituído por um outro pacote? Preciso de outro pacote -dev? Ou é uma variável de ambiente necessário; talvez isso poderia ser evitado de alguma outra forma?

Foi útil?

Solução

o pacote que você precisa é glibc.

Outras dicas

Eu havia enfrentado meu problema com a compilação com STLport 5.1.5, mas parece que o problema é corrigido é STLport 5.2.0. O problema está documentado no STLport Release Notes . Depois de obter uma cópia do STLport 5.2.1, a compilação passou com sucesso, sem soluços.

Eu encontrei este problema fazendo um cross-compilação. Quando você executar um 'make dependem' do Makefile irá invocar o programa makedepend como visto a partir desta atribuição:

MAKEDEPPROG=makedepend

makedepend só procura algum padrão incluem diretórios começando com /usr/include

Uma vez que os meios directiva #include_next para incluir a próxima instância encontrados do chamado arquivo de inclusão no caminho de procura, este irá falhar se outro não for encontrado.

Para mim, a solução foi makedepend dirigir para procurar o meu cross-compilador incluir diretórios em primeiro lugar. Eu fiz isso por alteração da atribuição MAKEDEPPROG para incluir a directiva -I:

MAKEDEPPROG=makedepend -I < path/to/cross-compiler/include-fixed >

sugiro a leitura sobre o programa makedepend (sobre o qual eu não sabia nada antes). Por exemplo, não era óbvio para mim que makedepend não iria usar um caminho de pesquisa de ambiente. A directiva -I coloca o caminho de pesquisa especificado antes caminhos padrão de makedepend.

Considere o uso de #include_next <limits.h> (extensão gcc), a fim de vigor gcc olhar para a próxima limits.h encontrada no caminho de inclusão (que deve ser a cópia do conjunto de ferramentas).

Eu não me lembro exatamente a resolução mais, mas tinha a ver com algum pacote faltando. Depois apt-obter mais algumas coisas, ele trabalhou para mim.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top