Existe uma maneira de compilar os programas Qt5, escritos com c ++, para o Ubuntu Touch?

8

Estou criando um programa com Qt5 e C ++, e gostaria de compilar meu programa para o Ubuntu Touch Preview ou o Ubuntu desktop.

Estou executando esses sistemas no Nexus 7. Eu encontrei o compilador C ++ correto ( arm-linux-gnueabihf-g++ ), mas como posso fazer o Qt5 funcionar?

    
por Johannes 23.02.2013 / 12:47

3 respostas

11

O caminho mais fácil

Você pode usar um recurso experimental do Ubuntu SDK Alpha. A beleza disso é que você não precisa fazer uma compilação cruzada.

Primeiro, conecte-se ao seu dispositivo:

  1. Conecte seu dispositivo à porta USB do seu computador
  2. Iniciar o Qt Creator
  3. Clique na guia de dispositivos
  4. Clique no botão Ativar para ativar o modo de desenvolvedor
  5. Vá para Ferramentas > Ubuntu > Dispositivo > Ativar > Cpp compilando no dispositivo Ubuntu (experimental)

Em seguida, comece a invadir:

  1. Abra o projeto do seu aplicativo no Qt Creator
  2. Ir para o Build > Ubuntu > Construir projeto C ++ no dispositivo Ubuntu (experimental)

Elávaivocê!:-)

Sevocêgostadeumdesafio

Vocêpodeconseguircompilarosaplicativosnodispositivomanualmente.Vocêpodetentarasseguintesetapas(nãotestadas):

  1. SSH no seu dispositivo executando o Ubuntu Touch Developer Preview
  2. Instale os pacotes de desenvolvimento necessários. Dependendo do que você precisa, talvez seja necessário adicionar pacotes à lista, mas aqui está uma primeira chance:

    sudo apt-get install qt5-default qtbase5-dev libqt5v8-5-dev qtdeclarative5-dev libqt5xmlpatterns5-dev qtscript5-dev qttools5-dev qt3d5-dev qtmultimedia5-dev libqt5svg5-dev qtdeclarative5-dev-tools qttools5-dev-tools qtlocation5-dev qtsensors5-dev qtpim5-dev qt-components-ubuntu

  3. Construa seu aplicativo C ++ com seu sistema de construção de escolha (cmake, qmake, etc ...)

por David Planella 23.02.2013 / 15:10
3

Há outra sugestão (terceira via, mas difícil):
1. obter linaro toolchain para armhf
2. obtenha libhybris e plataforma-api (da equipe phablet no launchpad.net ) 3. obtenha bibliotecas dinâmicas do dispositivo ( / lib / arm-linux-gnueabihf e / usr / lib / arm-linux-gnueabihf / ) 4. patch mkspecs para qmake 5. compilar 6. adicione o arquivo < your_app > .ktop ao / usr / share / applications / 7. adicione linhas ao /usr/share/qml-phone-shell/Applications/applications.js (pode ser opcional, eu acho) 8. empurre seu app e recursos 9. reiniciar shell ou telefone
10. Seu aplicativo foi trabalhado! (Eu testei isso!)

    
por user135193 24.02.2013 / 15:12
1

Instrução estendida fundada na resposta anterior. Tenha em mente: esta instrução descreve o desenvolvimento de Qt / Qml no PC para conexão Ubuntu sem ssh com o dispositivo e requer ferramenta de compilação cruzada como o linaro.

PARTE 1: criação de ambiente

  1. Obtenha o Ubuntu SDK
  2. Obtenha o toolchain: Linaro ou o wia sudo apt-get install gcc-arm-linux-gnueabihf instale o toolchain e suas dependências.
  3. Obtenha essas duas libs libhybris e platform-api mais libs Qt5 para armhf (podem ser obtidas no dispositivo) ou apenas faça o download de tarball com todas as libs (de tarball suas necessidades libs e headers, coloque-as em / usr / arm-gnueabihf / lib e / usr / arm-gnueabihf / include ).
  4. Modifique o qmake config - faça o unrar em mkspecs (por exemplo, o meu em / usr / share / qt5 / mkspecs / ). Dentro do diretório unrared - qmake.conf . Se algo falhar na compilação - é necessário alterar a variável de caminho nesse arquivo.
  5. Para o Qt Creator , crie um novo perfil de compilação: nas configurações Compilação e implantação , na aba Compiler - adicione um novo compilador ( arm -linux-gnueabihf-gcc ), na aba Ferramentas - adicionar novo perfil e especificar Tipo de dispositivo - Geral linux-device, Compilador - ones, que você está adicionado Perfil Qt - genérico (estou usando não recompilado Qt !!!), Qt mkspec - linux-arm-gnueabihf-gcc. É tudo que você precisa para compilar. Para depuração - é necessário especificar outros parâmetros. E além disso, é melhor recompilar o Qt das fontes. Mas eu sou tão preguiçoso)

PARTE 2: implantar aplicativo

  1. push / data / ubuntu / < some_path > aplicativo e recursos de envio do Wia push OS pode encontrá-los em / < some_path > . Note, não há nenhuma parte / data / ubuntu . Essa parte é necessária apenas por adb .
  2. Em seguida, é necessário tornar o arquivo app_name > .ktop :
    • raiz adb
    • concha adb
    • shell ubuntu_chroot - mude para bash no dispositivo
    • cd / usr / share / applications - vá na pasta com arquivos * .desktop
    • Copie qualquer um deles e edite (com vi ) para o propósito do seu aplicativo (nome, ícone, caminho, e.t.c.)
  3. Próxima etapa, igual à anterior (você já está em bash no dispositivo):
    edite o arquivo (com vi ) / usr / share / qml -phone-shell / Applications / applications.js, adicione parte para seu aplicativo no arquivo, da mesma forma que os outros aplicativos nesse arquivo. Deve ser o mesmo que em arquivo < app_name > .desktop
  4. Reinicialize o shell (matando o processo qml-phone-shell ) ou reinicie o telefone ( reboot -p )
  5. Agora você pode iniciar seu aplicativo na página Apps !

Exemplo de teste e materiais originais: Instrução EN e Instrução RU com links para downloads toolchain e bibliotecas essenciais.

    
por Dmitry Zagnoyko 24.02.2013 / 20:50