Arrêtez l'invite de commande de s'ouvrir lors de l'exécution du fichier exe construit à partir du projet haskell
J'ai créé une petite application qui utilise la bibliothèque de gloss pour une interface graphique. Lorsque vous tapez "cabal run [cabal file]", le projet est construit et exécuté, et ne demande que l'interface graphique. Lorsque je clique à la place sur le fichier .exe qui a été généré à partir de la construction, l'interface graphique s'ouvre, tout comme l'invite de commande. Je veux arrêter l'ouverture de l'invite de commande et ouvrir uniquement la fenêtre de gloss.
Réponses
Par défaut, sur Windows, GHC crée des programmes de console, qui ouvrent un terminal d'invite de commandes s'il n'est pas déjà ouvert. Si vous souhaitez créer un programme uniquement GUI, vous pouvez passer -mwindow
à l'éditeur de liens en donnant le -optl -mwindow
drapeau à GHC. Si vous utilisez Cabal, vous ajouteriez cet indicateur au ghc-options
champ de la strophe exécutable.
Méfiez - vous que si vous utilisez ce drapeau, votre programme n'aura pas stdin
, stdout
ou stderr
poignées de fichiers, de sorte que des actions comme putStrLn
, print
et getLine
ne fonctionnera pas, car ils sont équivalents à hPutStrLn stdout
, hPrint stdout
et hGetLine stdin
. Si vous souhaitez effectuer une journalisation ou une impression, vous devrez ouvrir un descripteur vous-même (par exemple un fichier, un terminal ou un socket avec un autre programme lisant à l'autre extrémité); cependant, Debug.Trace
fonctionnera toujours si vous avez besoin d'un traçage temporaire pour le débogage.
Vous pouvez trouver des informations de référence plus utiles dans le Guide de l'utilisateur du GHC §16. Exécution de GHC sur les systèmes Win32 .