Hello folks, I am new to MacOS/iOS and ran into the following problem (IDE is Xcode13): I have made a small c++ audio library with the Juce framework that I want to integrate into an existing application running on MacOS and iOS.
So far so good, I added the Projucer library project as a subproject to my workspace, added the correct header paths, added the subproject as a dependency and linked the library in the build settings of the target, so I can directly test changes I make to the library in the app (for now it is only a small c++ console app for testing since I wanted to find out how to correctly import the library before writing the bridge, as described here: https://github.com/adamski/audioengine-demo).
The problem I am currently running into is the following linker error I cant resolve:
Undefined symbols for architecture arm64:
ld: symbol(s) not found for architecture arm64
This error occurs 101 times, for every juce function that is beeing used. I checked the target architecture settings in both the library and the console app, they are the same. If I change the build active architecture only setting to No, the error changes to
ld: symbol(s) not found for architecture x86_64
I analysed the library binary with the file command in the console, which led to following output:
mylib.a : Mach-O universal binary with 2 architectures: [arm64:current ar archivecurrent ar archive] [x86_64]
mylib.a (for architecture arm64): current ar archive
mylib.a (for architecture x86_64): current ar archive
In my understanding, the binary should support my architecture (arm64), so why cant the linker find the symbols?
Thanks for your help!