Goのビルドでduplicate symbolエラーが発生する時
次のようにエラーが発生してハマったので備忘録です。
/usr/local/Cellar/go/1.17.2/libexec/pkg/tool/darwin_amd64/link: running clang failed: exit status 1 duplicate symbol '_Device_MakeLibrary' in: /var/folders/75/q516bd996r18sn7nj_3_05xm0000gn/T/go-link-1674777097/000019.o /var/folders/75/q516bd996r18sn7nj_3_05xm0000gn/T/go-link-1674777097/000026.o duplicate symbol '_RenderCommandEncoder_SetViewport' in: /var/folders/75/q516bd996r18sn7nj_3_05xm0000gn/T/go-link-1674777097/000019.o /var/folders/75/q516bd996r18sn7nj_3_05xm0000gn/T/go-link-1674777097/000026.o ... ld: 53 duplicate symbols for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
複数のバージョンをimportしていることが原因。
どちらか一方に合わせることで解消します。
import "github.com/hajimehoshi/ebiten/v2"
import "github.com/hajimehoshi/ebiten"