解決GoLand在M1 Mac上delve的問題

前陣子delve終於把m1 support給integrate到main branch了,不過由於一來他還沒tag release,二來GoLand並沒有讓你選擇外置delve的選項,所以只能用它內置壞掉的delve。

不過其實是可以使用外置delve的,也一併可以經由compile新的delve解決m1相容問題。這邊有提供一些解法,翻譯成中文大概就是這樣:

  1. 安裝arm64版本的go,最簡單的方法就是直接brew install golang.
  2. 確認安裝的是Apple Silicon版本的GoLand
  3. 抓下並且編譯delve main branch。具體的做法是 git clone https://github.com/go-delve/delve,然後進入delve目錄make install。他會把delve執行檔放到 ~/go/bin/dlv。
  4. 打開GoLand,選單選Help->Custom VM Options,增加一行 -Ddlv.path=/Users/<你的ID>/go/bin/dlv
  5. 重啟GoLand,恭喜,你的GoLand的debugger正常了。
One Comment

目前Macbook M1開發環境測試

這是一張列表,從今天(1/11)看我用到的開發工具的測試,看看能不能使用。

Jetbrains IDEs

可用,而且有特別的Apple Silicon版本。目前僅有AppCode(取代Xcode)沒有而已,其他主流開發的IDE應該都有了。

OpenJDK

目前無法從Homebrew安裝OpenJDK,AdoptOpenJDK似乎也還沒跟上(雖然x86版本似乎是可以用)。普通來講是建議從azul去取得arm64的OpenJDK來跑比較好。

其他版本可以參考Azul的官方公告

Go

從homebrew裝的沒啥問題,不過delve(go的debugger)目前沒有m1 build,會造成go無法debug。根據小道消息表示應該要等到二月delve才有辦法支援m1,不想等的人可以到這裡去取得arm branch自己編譯一個,也可以取代掉GoLand裡面的delve

Docker

需要使用Technical Preview 3.0.0才能正常使用,使用上沒什麼問題。

Homebrew

沒太大問題。有不少keg/bottle會出現ad-hoc signature sign fail(比方說你試圖安裝wget就可重現),不過似乎沒碰到太嚴重影響開發的套件問題就是。

C++/Clang

用起來沒啥問題,也不該有啥問題就是…

Xcode / CocoaPods

CocoaPods會無法安裝,這邊有workaround讓你的系統能裝起來CocoaPods,跑起來沒碰到啥問題。Xcode12就….不說了,IB出來一個樣,Application出來一個樣,這個版本在編譯傳統obj-c有相當嚴重的問題(可能跟M1無關),非常不建議使用。

Leave a comment