23

I'm getting this error for C++ library I'm using. It uses GNU Automake for building. Which flag(s) I should supply for the make command to lower the target build platform to avoid seeing this warning in Xcode project where I'm trying to link against the library?

peetonn
  • 2,762
  • 4
  • 26
  • 41

3 Answers3

16

You need to set the compiler flag -mmacosx-version-min to the version number of the SDK you want to build against. I don't use automake, but in cmake you'd set the variable CMAKE_OSX_DEPLOYMENT_TARGET, and in qmake you'd set the variable QMAKE_MACOSX_DEPLOYMENT_TARGET.

cbrnr
  • 1,261
  • 1
  • 11
  • 24
  • 2
    If you're having this problem with QtCreator, simply add `QMAKE_MACOSX_DEPLOYMENT_TARGET = xx.xx` to your project file, where xx.xx is the version number of the SDK used to compile the library – Dissident penguin Jul 22 '19 at 08:45
12

As cbrnr answered, you have to use -mmacosx-version-min compiler flag. To pass compiler flag through make, you can use CXXFLAGS environment variable:

make CXXFLAGS="-mmacosx-version-min=10.10" <target or other make params>
MateuszL
  • 2,462
  • 24
  • 33
3

When using ./configure for a number of packages the macosx-version-min setting defaults to particular OS version - which can lead to the mentioned warning message if that OS version is lower than the macosx-version-min version that the linked library was compiled. However, this can be controlled by setting the MACOSX_DEPLOYMENT_TARGET environment variable before running configure e.g.

MACOSX_DEPLOYMENT_TARGET=10.14 ./configure
Pierz
  • 5,588
  • 37
  • 55