0

I wish to use Lame to mp3 encode audio on macOS from El Capitan (10.11) forward. My development machine runs Catalina (10.15).

On macOS Catalina, I built libmp3lame.a v3.100 using the following:

./configure --disable-decoder --host="x86_64"
make
make install

I linked to this from my program and this worked fine on Catalina itself. I then tested my application on El Capitan and attempting to call lame_init_params failed with the following error:

dyld: lazy symbol binding failed: Symbol not found: ____chkstk_darwin
Referenced from: /Applications/MyApp.app/Contents/MacOS/MyApp
Expected in: /usr/lib/libSystem.B.dylib

Building on El Capitan produced a library that ran fine on both machines.

Is it possible on Catalina (or other OS) to configure the build in such a way that it works with earlier OSs, e.g. El Capitan without having to build on the older OS itself?

fractor
  • 1,534
  • 2
  • 15
  • 30
  • Does this answer your question? [What is the difference between MACOSX\_DEPLOYMENT\_TARGET and -mmacosx-version-min?](https://stackoverflow.com/questions/25352389/what-is-the-difference-between-macosx-deployment-target-and-mmacosx-version-min) – Nikos C. May 10 '20 at 07:57
  • 1
    So try `MACOSX_DEPLOYMENT_TARGET=10.11 ./configure ...` and `MACOSX_DEPLOYMENT_TARGET=10.11 make` – Nikos C. May 10 '20 at 08:01

0 Answers0