При попытке установить зависимости Python на MacOS я столкнулся с ошибкой сборки.
clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of OS X 10.9 [-Wdeprecated]
ld: library not found for -lstdc++
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command 'g++' failed with exit status 1
У меня установлен xcode и инструменты командной строки xcode, и я использую доморощенный, поэтому у меня установлен gcc 9.1 через доморощенный.
Еще одна важная вещь, которую я вижу в сборке, заключается в следующем:
ERROR: running bdist_wheel
running build
running build_py
creating build
creating build/lib.macosx-10.7-x86_64-3.7
Меня беспокоит то, что я не уверен, на что ссылается macosx-10.7? Я использую mojave (10.14) и xcode версии 10.2.1, так что же означает 10.7?
Я думаю, что 10.7 просто очень общий и указывает на все, что совместимо с 10.7 и выше. Но это всего лишь предположение.
Для чего это стоит: я вижу build/lib.macosx-10.13-x86_64-3.7 на своей машине для MacOS 10.14.4. Это расширение C/Cython, а не C++.






Удивительно, но это, кажется, помогает (для bash):
export MACOSX_DEPLOYMENT_TARGET=10.9
Я до сих пор не уверен, что такое 10.7 против 10.9, но эта строка в журнале ошибок:
move to libc++ with a minimum deployment target of OS X 10.9
привели к тому, что я обнаружил, что экспорт цели развертывания эффективно делает то, о чем он просит.
Вы, вероятно, захотите установить эти зависимости Python с gcc, установленным через Homebrew; у него не будет проблем с собственным libstdС++. Вы можете попробовать указать путь к gcc перед PATH при их создании; или настроить setup.py.