运行 fyne 报错 ld: warning: ignoring duplicate libraries: '-lobjc'
使用 Go 的 Fyne 写一个桌面小应用,结果刚跑了个 demo 就报错:
ld: warning: ignoring duplicate libraries: '-lobjc'
搜了一下官方的 issue,还真找到了这个问题,遇到的人还不少,都是 macOS 用户。
原因应该跟 StackOverflow 上的一个问题一样,就是 Homebrew 团队说的 gcc 跟 XCode 15 的兼容性问题。
具体原因可以参考这个问答: ld: warning: ignoring duplicate libraries: '-lgcc' after the recent update of Xcodebuild tools
解决方案
前面两个链接里的解决方案其实一样,就是给 gcc 加参数,不过我们是用 go run/build 命令来跑的,所以加参数的方式稍微有些区别:
# 原本的命令
go run .
# 加上参数后的命令
go run -ldflags="-extldflags=-Wl,-ld_classic,-no_warn_duplicate_libraries,-v" .
这样问题就解决了。