2017-09-24 760 views
-2

我使用MSI安裝程序在Windows 10中安裝了Go。然而,當我用參數運行在cmd(或PowerShell)中時,例如env,build,install,list,... 在go命令運行後,控制檯窗口關閉(或崩潰?)。這可以防止我在編譯轉碼時看到任何錯誤或任何錯誤。Golang - Windows控制檯在運行go.exe時退出

是否有某種包含控制檯主機數據的窗口日誌,如崩潰,錯誤和警告?這對於確定控制檯或控制檯主機是否由於某種原因而崩潰很有幫助。

作爲一個例子:

go env 

不會輸出任何東西,控制檯窗口將立即關閉。

編輯:只是爲了澄清,我沒有在運行對話框中運行此命令,我從管理員命令提示符運行它(我嘗試使用PowerShell,也沒有運氣)。如果我運行:

go help 

它會正常工作。然而,當我運行與任何其他說法去,如:

go install <target> 

go build <target> 

過程將工作,但控制檯將給予我任何信息之前退出。

編輯:

我發現了一個臨時的解決辦法...如果我運行他們照常上班Cygwin的終端去命令。這很奇怪。

+2

您運行該命令的準確程度如何? – JimB

+0

我討厭推薦一些如此基本的東西,但是您是否嘗試過重新啓動Windows?我覺得它不應該是必要的,但是......畢竟它是Windows;) – Jonathan

+1

看起來好像有什麼東西在殺死conhost.exe(控制檯主機進程),或者它正在崩潰。嘗試使用舊版控制檯。在選項選項卡的控制檯屬性中,選擇使用舊控制檯的選項。關閉它並嘗試在新的命令提示符下運行Go命令。 – eryksun

回答

0

我想通了,我已經安裝了Cygwin,並將其放入我的路徑環境變量中。原來,Cygwin的git安裝干擾了最新的git安裝。如果我使Cygwin終端運行,這隻會導致args無法正常工作。在golang-nuts上有人還提到一些git版本有一些bug,come.exe會導致go命令在Windows上失敗。

修復我剛剛從路徑中刪除Cygwin和更新的git到最新版本。

3

win+r並在產生的對話框中輸入%COMSPEC%。這將啓動特定命令插件的新副本,在大多數現代Windows版本上默認爲cmd.exe

在這個新窗口或其他喜歡它的人中運行你的Go命令。

你的問題似乎是你試圖直接運行命令。 Windows會自動創建一個命令提示符來運行這些命令,但只要命令完成就會立即關閉,然後才能讀取輸出。

+0

感謝您的幫助,但是,在我可以讀取任何內容之前,控制檯窗口仍在關閉,構建命令可以正常工作,但如果發生編譯器錯誤,則不會提供任何信息。這在我之前使用過的任何系統中都沒有發生過。 – Patrick

+0

等一下。命令提示您手動打開*命令完成時關閉?這是不可能的,如果你願意,你甚至不能這樣做。 (好吧,如果你真的願意,你可能會這樣做,但它會是一個可怕的黑客) –

+0

@Patrick'go build -x -v os 1> out.txt 2>&1'的輸出是什麼?例如,'out.txt包含什麼? –