Targeting older versions of macOS
Al Fransham at Affective Sound via Lame-dev <[email protected]> Fri, 8 May 2020 06:45:41 +0000
| Newsgroups | gmane.comp.audio.mp3.lame |
|---|---|
| Message-ID | <LOYP123MB335726D551AF3CFA2CD019B3BEA20@LOYP123MB3357.GBRP123.PROD.OUTLOOK.COM> |
I wonder if you can help. I wish to use Lame to mp3 encode audio on macOS from El Capitan (10.11) forward. My development machine runs Catalina (10.15). I am new to Lame and to its associated build tools so I apologise if any of this demonstrates an incorrect approach or should be obvious. On macOS Catalina, I built libmp3lame.a 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 So I built lame using the same configuration on El Capitan, then linked the resultant libmp3lame.a and my program now works on both Catalina and El Capitan. So far so good. I have two questions. Firstly, since I am able to successfully use libmp3lame.a on El Capitan, is it reasonable to expect this to work fine for all versions of macOS following El Capitan assuming an x86_64 CPU? Secondly, 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? Thank you. Al.