Hentikan prompt perintah dari pembukaan saat menjalankan file exe yang dibangun dari proyek haskell

Nov 30 2020

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

3 JonPurdy Nov 30 2020 at 20:08

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 -mwindowke linker dengan memberikan -optl -mwindowflag ke GHC. Jika Anda menggunakan Cabal, Anda akan menambahkan flag ini ke ghc-optionsfield di stanza yang dapat dieksekusi.

Hati-hati bahwa jika Anda menggunakan bendera ini, program anda tidak akan memiliki stdin, stdoutatau stderrmenangani file, sehingga tindakan seperti putStrLn, print, dan getLinetidak 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.Traceakan 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 .