não pode fazer protobuf no Solaris 8

1

Acabei de fazer o download do buffer de protocolo (protobuf) 2.5.0 de aqui . Então eu tentei instalá-lo no Solaris 8 (SunOS ms-sparc8 5.8). Quando tento executar o make, recebo este erro.

In file included from google/protobuf/compiler/command_line_interface.h:41,
             from google/protobuf/compiler/main.cc:33:
google/protobuf/stubs/common.h:48:20: stdint.h: No such file or directory

Meu Solaris não possui stdint.h . Então eu tentei colocar um stdint.h portátil tirado de aqui e colocá-lo dentro de% código%. Depois de colocar o /usr/include/ , tentei executar o make novamente e falhei. Então tentei dar uma olhada dentro do arquivo que está causando o erro (command_line_interface.h & main.cc). Eu suponho que stdint.h e command_line_interface.h usa main.cc arquivo de cabeçalho e o problema é causado por common.h. Quando olho dentro do código common.h , encontrei esta inicialização:

#if defined(__osf__)
// Tru64 lacks stdint.h, but has inttypes.h which defines a superset of
// what stdint.h would define.
#include <inttypes.h>
#elif !defined(_MSC_VER)
#include <stdint.h>
#endif

Eu tentei remover common.h em #include <stdint.h> e substituí-lo por !define(_MSC_VER) , esperando que ele fosse forçado a usar somente <inttypes.h> . Então, novamente, falha. Então, meu próximo palpite é porque o inttypes.h não está definido. O que isso representa? Quando eu olho dentro do log make, isso me confunde ainda mais. Se você precisar ver o log do make. Eu colei aqui . Como posso resolver isso? Alguém tem o mesmo problema ao instalar protobuf?

    
por Mohd Fikrie 26.05.2014 / 05:51

1 resposta

1

Você tem sorte, stdint.h não é um cabeçalho muito complicado e você pode simplesmente produzir um.

Existem algumas possibilidades:

  1. No solaris 8, você pode usar <sys/int_types.h> em vez de <stdint.h> . Você pode alterar isso no código-fonte ou criar seu próprio arquivo em /usr/include/stdint.h com o conteúdo exclusivo " #include <sys/int_types.h> ".
  2. Você pode importar isso de outro sistema. Por exemplo, stdint.h parece muito simples e portátil no cygwin64.
  3. Ou você pode conseguir isso da glibc também, embora não exista realmente o beautyfil (a glibc tende a tornar tudo 10x mais complexo como deve ser)

No seu lugar eu comecei com (1) e no caso de um problema eu fiz uma nova pergunta.

    
por 26.05.2014 / 11:23