Pergunta

Eu tenho um programa multi-plataforma que roda em Windows, Linux e Macintosh. Minha versão do Windows tem um ícone, mas eu não sei como fazer ter um para minha compilação Linux. Existe um formato padrão para o KDE, Gnome, etc, ou eu terei que fazer algo especial para cada um?

Meu aplicativo está em c ++ e distribuído como fonte para que o usuário final irá compilar com gcc.

Se eu puder ter o ícone incorporado diretamente dentro da minha binário exe que seria o melhor.

Foi útil?

Solução

Para Gnome e KDE, você provavelmente vai querer incluir um arquivo de área de trabalho com o seu aplicativo que define como ele será lançado. A especificação pode ser encontrada aqui . Se você tem um instalador incluído no seu aplicativo, você provavelmente quer tê-lo gerar esse arquivo desktop e colocá-lo nos lugares certos para fazer entradas do menu e outros enfeites

Outras dicas

Se você estiver usando um dos sistemas de compilação F / OSS pré-cozido, como o apoio CMake do KDE, é realmente bastante fácil uma vez que você tem um arquivo .desktop:

instalar (FILES myapp.desktop DESTINO $ {XDG_APPS_INSTALL_DIR}) kde4_add_app_icon (myapp_SRCS "$ {CMAKE_CURRENT_SOURCE_DIR} /hi*-app-myappname.png")

Se você está rolando o seu próprio, considere o uso xdg-utils , que inclui scripts pequenos acessíveis como xdg-desktop-menu (instala itens de menu do desktop) e xdg-desktop-icon (instala ícones na área de trabalho) para essas coisas.

O padrão .desktop já foi apontado no primeiro comentário, embora você também pode simplesmente pegar uma que já está instalado em seu sistema e modificá-lo de lá. Quanto aos ícones, PNGs e SVGs são geerally suportado embora PNGs tendem a dar os melhores resultados ainda.

comunidade KDE Com ele é série KDE 4 começou a usar CMake como um sistema de compilação. Eles desenvolveram uma macro CMake que sabe como definir um ícone para seus regardles aplicação da plataforma (Windows (incorporado em exe), mac (feixes .app), linux (arquivos .desktop) etc.)

Talvez você possa usá-lo.

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