Impedir a abertura do prompt de comando ao executar o arquivo exe criado a partir do projeto haskell
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
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 -mwindow
para o vinculador, dando o -optl -mwindow
sinalizador ao GHC. Se estiver usando o Cabal, você adicionaria esse sinalizador ao ghc-options
campo na estrofe executável.
Beware que se você usar esse sinalizador, o programa não terá qualquer stdin
, stdout
ou stderr
identificadores de arquivo, por isso ações como putStrLn
, print
e getLine
não vai funcionar, já que eles são equivalentes a hPutStrLn stdout
, hPrint stdout
e 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.Trace
ainda 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 .