Pergunta

Alguém tem alguma experiência com a execução de aplicativos em C ++ que usam as bibliotecas de impulso em sistemas baseados em uClibc? Será que é mesmo possível? Qual biblioteca padrão C ++ você usaria? É uClibc ++ utilizável com impulso?

Foi útil?

Solução

Nós usamos impulso juntamente com GCC 2.95.3, libstdc ++ e STLport em uma plataforma ARMv4 correndo uClinux. Algumas partes do impulso não são compatíveis com 2.x GCC, mas os que são funciona bem em nosso caso particular. As bibliotecas que usamos a maioria são date_time , ligamento , função , tuple e fio .

Algumas das bibliotecas que tivemos problemas com foram lambda , shared_pointer e formato . Estas questões foram provavelmente causado por nossa versão do GCC, uma vez que tem problemas quando você tem muitos inclui ou níveis profundos de estruturas de modelo.

Se possível, eu recomendo que você executar o conjunto de testes impulso com o seu conjunto de ferramentas em particular para garantir a compatibilidade. No mínimo, você pode compilar um conjunto de ferramentas nativo, a fim de garantir que seus versões de bibliotecas são compatíveis.

Nós não usamos uClibc ++, porque não é isso que o nosso provedor toolchain recomenda por isso não posso comentar sobre essa combinação particular.

Outras dicas

Estamos usando muitas das bibliotecas de impulso (fio, sistema de arquivos, sinais, função, bind, qualquer, asio, smart_ptr, tuple) em uma Arcom Vulcan que é reconhecidamente muito poderosa para um dispositivo embutido (64M RAM, 533MHz XScale). Tudo funciona muito bem.

GCC 3.4, mas não estamos usando uclib ++ (Arcom fornece um conjunto de ferramentas que inclui libstd ++).

Muitos dispositivos embarcados serão felizes para executar muitas das bibliotecas Boost, assumindo suporte do compilador decente. Só tome cuidado com o uso. As bibliotecas de impulso elevar o nível de abstração e pode ser fácil de usar mais recursos do que você pensa.

Eu pesquisei "STLport uClibc". Parece que há pelo menos algumas versões de uClibc para o qual STLport podem ser compilados (veja este ). Dado que, eu diria Boost é apenas alguns compilação passos de distância. Eu li uma mensagem a David Abrahams (que é um membro ativo da comunidade boost) que diz que o impulso não dependem diretamente da libc utilizada. Mas algumas bibliotecas podem ainda causar problemas, Boost.Python por exemplo, uma vez que depende de outra coisa (Python no meu exemplo) que podem ser difíceis de compilar com uClibc.

Espero que isso ajude

Eu não tentei, mas eu não sei nada sobre uClibc que impeça impulso de trabalhar.

Experimente e veja o que acontece, eu diria.

Sim, você pode usar impulso com uClibc.
Eu tentei isso com aumento 1,45 & uClibc em ARM9260

  1. Use fresco OpenEmbedded
  2. configurá-lo para usar Angstrom
  3. Configurar Angstrom usar uClibc
  4. Faça impulso - boost bitbake
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top