きっかけがよくわからないですがArm64のMacでM5Unified(もしくはM5GFX)のNative環境でリンクが失敗する現象に陥ったのでメモ。
上記画像のようにSDL2の関数とリンクできません。
原因はx86_64
でオブジェクトを作成しちゃってるようです。
恒久対策は別にあるかもですが、とりあえずはarm64のバイナリを作るように指定すれば解決しました。
具体的にはplatformio.iniでbuild_flagsに-arch arm64
を追加します。
[env:native] platform = native build_type = debug build_flags = -O0 -xc++ -std=c++14 -lSDL2 -arch arm64 -I"/usr/local/include/SDL2" -L"/usr/local/lib" -I"${sysenv.HOMEBREW_PREFIX}/include/SDL2" -L"${sysenv.HOMEBREW_PREFIX}/lib" lib_deps = m5stack/M5Unified@^0.1.12