当从 haskell 项目构建 运行 exe 文件时停止打开命令提示符
Stop command prompt from opening when running exe file built from haskell project
我创建了一个使用 gloss 库作为 GUI 的小应用程序。当键入“cabal 运行 [cabal file]”时,项目已构建并 运行,并且仅提示 GUI。当我转而单击从构建生成的 .exe 文件时,GUI 打开,但命令提示符也打开。我想停止打开命令提示符,只打开 gloss 中的 window。
默认情况下 Windows GHC 构建控制台程序,如果尚未打开命令提示符终端,它会打开。如果你想构建一个纯 GUI 程序,你可以通过将 -optl -mwindow
标志传递给 GHC 来将 -mwindow
传递给链接器。如果您正在使用 Cabal,您可以将此标志添加到可执行节中的 ghc-options
字段。
请注意,如果您使用此标志,您的程序将没有任何 stdin
、stdout
或 stderr
文件句柄,因此 putStrLn
、print
和 getLine
将不起作用,因为它们等同于 hPutStrLn stdout
、hPrint stdout
和 hGetLine stdin
。如果你想做任何日志记录或打印,你需要自己打开一个句柄(例如一个文件、终端或套接字,另一个程序读取另一端);但是,如果您需要临时跟踪调试,Debug.Trace
仍然有效。
您可以在 GHC User’s Guide §16. Running GHC on Win32 Systems 中找到更多有用的参考信息。
我创建了一个使用 gloss 库作为 GUI 的小应用程序。当键入“cabal 运行 [cabal file]”时,项目已构建并 运行,并且仅提示 GUI。当我转而单击从构建生成的 .exe 文件时,GUI 打开,但命令提示符也打开。我想停止打开命令提示符,只打开 gloss 中的 window。
默认情况下 Windows GHC 构建控制台程序,如果尚未打开命令提示符终端,它会打开。如果你想构建一个纯 GUI 程序,你可以通过将 -optl -mwindow
标志传递给 GHC 来将 -mwindow
传递给链接器。如果您正在使用 Cabal,您可以将此标志添加到可执行节中的 ghc-options
字段。
请注意,如果您使用此标志,您的程序将没有任何 stdin
、stdout
或 stderr
文件句柄,因此 putStrLn
、print
和 getLine
将不起作用,因为它们等同于 hPutStrLn stdout
、hPrint stdout
和 hGetLine stdin
。如果你想做任何日志记录或打印,你需要自己打开一个句柄(例如一个文件、终端或套接字,另一个程序读取另一端);但是,如果您需要临时跟踪调试,Debug.Trace
仍然有效。
您可以在 GHC User’s Guide §16. Running GHC on Win32 Systems 中找到更多有用的参考信息。