macOS 用 Ruby gem ユニバーサル コンパイル
概要
C で書かれた Ruby gem があり、これは次のように簡単にコンパイルされます。
ruby ./extconf.rb
make
Windows と Linux では、これにより .so ファイルが作成され、これを Ruby スクリプトにロードできます。
macOS では、これにより .bundle ファイルが作成されます。これで、lipo -archs xxx.bundle は、バンドルが x86_64 専用であることを示しました。バンドルを Intel ベースと Arm ベースの macOS の両方に共通にするには、何を変更する必要がありますか?
解決策
試す
lipo -archs xxx.bundle
lipo -archs は、利用可能なアーキテクチャを表示します。
Lipo が単一のアーキテクチャを表示する場合は、
export CFLAGS="-arch x86_64 -arch arm64"
export CXXFLAGS="-arch x86_64 -arch arm64"
export LDFLAGS="-arch x86_64 -arch arm64"
.bundle をビルドすると、ユニバーサル バイナリ コンパイラ フラグが設定される場合があります