使用 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" .

这样问题就解决了。

问题解决后运行截图

2024-04-14T18:17:09.png

标签: fyne, GUI