壹如既往的喜歡用idea的 "Run", 但是在某個項目中竟然跑不起來了.
然後我又在命令行了試了壹下 go build, 發現是正常的, 奇怪了, 雖然能build在執行, 但是沒idea中run來得方便啊, 不能忍, 所以開始研究之旅 .
首先 我的項目結構是這樣的:
第壹懷疑的是自己用法不對, 敲 go help run
首先想到的是 build flags參數, 是不是有什麽其他的參數沒配置對, 先看看參數的使用吧.
好像參數都和那undefined無關, 沒辦法了, -n看看run和build的commands有什麽不同, 導致了壹個正確壹個錯誤.
go build -n (只截取了重要部分)
go run -n main.go
我細(cou)心(qiao)的發現了最後壹句話的不同. build -pack了兩個文件, run 只-pack了壹個文件, 而報錯的地方正是run沒有-pack進來的文件, 那麽真相只有壹個 : 那就是run沒有-pack進來package(main) 的所有文件, 導致直接go run main.go, 找不到其他文件下的東西. 問題找到了, 怎麽解決呢?
那麽 怎麽能讓go run包含多個文件進來呢?
看到gofiles...了嗎, 看到熟悉的...了嗎? 是的, go run可以傳多個文件 如: go run a.go b.go c.go. 打開命令行, 壹試 好了 ! 好像又離解決問題近了壹步.
我是相信idea的強大的, run多個文件的問題它肯定能解決;
首先看看run配置
這裏要是能配置多個文件應該就可以, 然後並不能.
那算了, 刪了再來, 這壹次我們build and run
然後點擊
依然有壹個file選項, 依然是不能多選的...
不過上面還有壹個Run kind, 點壹下出現了package: 運行整個包,而不是單壹個文件? 好像有希望, 輸入room, 試壹試, 果然跑起來了 .