Moving around between different machines I sometimes run into Lazarus giving me warnings like these:
ld: warning: object file (/Volumes/GoogleDrive/My Drive/Projects/LazarusProjects/Tests/Test GetMntInfo/lib/aarch64-darwin/project1.o) was built for newer macOS version (11.0) than being linked (10.8)
ld: warning: object file (/Users/hans/fpcupdeluxe/fpc/units/aarch64-darwin/rtl/system.o) was built for newer macOS version (11.0) than being linked (10.8)
ld: warning: object file (/Users/hans/fpcupdeluxe/fpc/units/aarch64-darwin/rtl/lnfodwrf.o) was built for newer macOS version (11.0) than being linked (10.8)
ld: warning: object file (/Users/hans/fpcupdeluxe/fpc/units/aarch64-darwin/rtl/exeinfo.o) was built for newer macOS version (11.0) than being linked (10.8)
ld: warning: object file (/Users/hans/fpcupdeluxe/fpc/units/aarch64-darwin/rtl/strings.o) was built for newer macOS version (11.0) than being linked (10.8)
Basically saying, in this example, that an object file was build for one macOS version, yet linked against a different version.
I will not claim to be an expert, but this is how I usually fix this:
In Lazarus goes to Project - Project Options - Compiler Options - Custom Options.
In the field "Custom options", we need to at the"-WM" option which allows us to select a specific SDK.
For example: -WM12.0 will enforce the macOS 12.0 SDK.
Now do a "Clean and Build" for you project and things should be OK now.
Alternatively, I read you can add this to the fpc.cfg file as well.