Impedir a abertura do prompt de comando ao executar o arquivo exe criado a partir do projeto haskell

Nov 30 2020

Eu criei um pequeno aplicativo que usa a biblioteca gloss para uma GUI. Ao digitar "cabal run [cabal file]", o projeto é construído e executado, e somente exibe a GUI. Quando, em vez disso, clico no arquivo .exe que foi gerado a partir da compilação, a GUI abre, mas também o prompt de comando. Eu quero parar o prompt de comando de abrir e apenas ter a janela de brilho aberta.

Respostas

3 JonPurdy Nov 30 2020 at 20:08

Por padrão, no Windows GHC cria programas de console, que abrem um terminal de Prompt de Comando se ainda não houver um. Se você deseja construir um programa somente com interface gráfica do usuário, pode passar -mwindowpara o vinculador, dando o -optl -mwindowsinalizador ao GHC. Se estiver usando o Cabal, você adicionaria esse sinalizador ao ghc-optionscampo na estrofe executável.

Beware que se você usar esse sinalizador, o programa não terá qualquer stdin, stdoutou stderridentificadores de arquivo, por isso ações como putStrLn, printe getLinenão vai funcionar, já que eles são equivalentes a hPutStrLn stdout, hPrint stdoute hGetLine stdin. Se você quiser fazer qualquer registro ou impressão, você precisará abrir um identificador (por exemplo, um arquivo, terminal ou socket com outro programa lendo a outra extremidade); no entanto, Debug.Traceainda funcionará se você precisar de rastreamento temporário para depuração.

Você pode encontrar informações de referência mais úteis no Guia do usuário do GHC §16. Executando GHC em sistemas Win32 .