Evite que el símbolo del sistema se abra al ejecutar un archivo exe creado a partir del proyecto haskell
He creado una pequeña aplicación que usa la biblioteca de brillo para una GUI. Al escribir "cabal run [cabal file]", el proyecto se construye y ejecuta, y solo solicita la GUI. Cuando en su lugar voy y hago clic en el archivo .exe que se generó a partir de la compilación, se abre la GUI, pero también lo hace el símbolo del sistema. Quiero evitar que se abra el símbolo del sistema y solo tener abierta la ventana de brillo.
Respuestas
De forma predeterminada en Windows, GHC crea programas de consola, que abren una terminal de símbolo del sistema si aún no está abierta. Si desea crear un programa solo con GUI, puede pasar -mwindow
al vinculador dándole la -optl -mwindow
bandera a GHC. Si está usando Cabal, agregaría esta bandera al ghc-options
campo en la estrofa ejecutable.
Tenga en cuenta que si se utiliza esta bandera, su programa no tendrá ningún stdin
, stdout
, o stderr
los identificadores de archivo, así como las acciones putStrLn
, print
y getLine
no va a funcionar, ya que son equivalentes a hPutStrLn stdout
, hPrint stdout
y hGetLine stdin
. Si desea realizar algún registro o impresión, deberá abrir un identificador usted mismo (por ejemplo, un archivo, terminal o conector con otro programa leyendo el otro extremo); sin embargo, Debug.Trace
seguirá funcionando si necesita un seguimiento temporal para la depuración.
Puede encontrar información de referencia más útil en la Guía del usuario de GHC §16. Ejecución de GHC en sistemas Win32 .