Hentikan prompt perintah dari pembukaan saat menjalankan file exe yang dibangun dari proyek haskell
Saya telah membuat aplikasi kecil yang menggunakan perpustakaan gloss untuk GUI. Saat mengetik "cabal run [cabal file]", proyek dibangun dan dijalankan, dan hanya meminta GUI. Ketika saya pergi dan mengklik pada file .exe yang dihasilkan dari build, GUI terbuka tetapi begitu juga prompt perintah. Saya ingin menghentikan command prompt agar tidak terbuka dan hanya membuka jendela dari gloss yang terbuka.
Jawaban
Secara default pada Windows GHC membangun program konsol, yang membuka terminal Command Prompt jika belum terbuka. Jika Anda ingin membangun program khusus GUI, Anda dapat meneruskan -mwindow
ke linker dengan memberikan -optl -mwindow
flag ke GHC. Jika Anda menggunakan Cabal, Anda akan menambahkan flag ini ke ghc-options
field di stanza yang dapat dieksekusi.
Hati-hati bahwa jika Anda menggunakan bendera ini, program anda tidak akan memiliki stdin
, stdout
atau stderr
menangani file, sehingga tindakan seperti putStrLn
, print
, dan getLine
tidak akan bekerja, karena mereka setara dengan hPutStrLn stdout
, hPrint stdout
, dan hGetLine stdin
. Jika Anda ingin melakukan pencatatan atau pencetakan, Anda harus membuka pegangan sendiri (misalnya file, terminal, atau soket dengan program lain membaca ujung lainnya); namun, Debug.Trace
akan tetap berfungsi jika Anda memerlukan pelacakan sementara untuk debugging.
Anda dapat menemukan informasi referensi yang lebih bermanfaat di GHC User's Guide §16. Menjalankan GHC pada Sistem Win32 .