macOSのBig SurでopenFrameworksをbuildしようとした時に起きたエラー

openFrameworksに興味を持ち、ダウンロードを行い、早速試しに何かビルドしようとすると下記のエラーが。

ld: file not found: /usr/lib/libstdc++.6.dylib for architecture x86_64

まだ普通にダウンロードだけしかしてないのになんでだろうと思いつつ、色々調べてみると、openFrameworksのフォーラムでもこのトピックが多く参照されているようでした。日本語でもまとめてくれている方がいて、感謝。

openFrameworks Forum: https://forum.openframeworks.cc/t/building-in-macos-11-0-big-sur/36581/38

Qiita: https://qiita.com/kojikanao/items/d74470709761a9b13dd4

解決としては下記のステップをふむとのこと。

  1.  libfmodex.dylibを最新版に入れ替える
  2. RunScriptを最新に変更する

上記を読んでも、恥ずかしながら具体的なやり方がわからず、質問してようやくビルドできるようになったので、自分が学んだことをメモしようと思います。

 libfmodex.dylibを最新版に入れ替える

1. libfmodex.dylibを最新版に入れ替える

まずは下記から該当ファイルをダウンロードします。

libfmodex.dylib
https://forum.openframeworks.cc/uploads/short-url/xYYPPDoARUoUJR6w6vPh0JW1c4A.zip

zipを回答すると下記のようなファイルが出てきます。

libfmodex.dylib

このファイルを以前の「libs/fmodex/lib/osx/」に入れ替えてねとのこと。ここでつまづいたのですが、単純にFinderでlibs > fmodex > lib > osxの順でファイルをクリックして、解凍したファイルを置き換えればOKでした。

2. RunScriptを最新に変更する

2.RunScriptを最新に変更する

libfmodex.dylibを入れ替えたら、次は build phaseのRun Script (ケツから2番目)に変更を加えます。

install_name_tool -change @ executable_path/libfmodex.dylib @executable_path/../Frameworks/libfmodex.dylib "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME";

から

install_name_tool -change @rpath/libfmod.dylib @executable_path/../Frameworks/libfmodex.dylib "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME";

へ。(写真の六行目の部分)

これで変更は完了です。

これで、無事にビルドされると思います。

関連記事

関連トピック

#    #