1. goland,cgo載入32位DLL遇到的問題
第一次開發Go程序,使用Goland過程中遇到的一些問題,開發的Go後台需要使用到Windows的一個32位DLL動態庫,此為原由,整個過程如下。
在按照上述方式配置好環境,並嘗試使用CGO載入DLL時,執行GOLAND的DEBUG提示如下。
經過搜索猜測,是目標機器架構選擇錯誤導致的。
但是在環境配置中,已經正確的選擇了Arch為386,嘗試使用liteIDE或者直接使用命令行編譯,都能夠正常編譯。唯獨使用GoLand不行。
看現象應該是設置沒有生效,最後嘗試在Run/Debug Configurations再次設置Go env解決此問題。步驟如下:
再次點擊debug,發現debug失敗,提示如下內容。
這是因為,goland在debug時使用的是dlv插件,該插件還不支持32位程序的調試,直接執行run就可以了。
在使用命令行編譯go程序時,可以使用go env命令查看當前編譯環境設置。
假如需要修改 GOARCH為386,繼續輸入命令行 set GOARCH=386 即可,如果重新打開cmd終端,則需要重新設置。所以如果使用命令行編譯,可以寫一個bat文件,每次都自動先把環境設置好。