Проблема с ld
такая же, как и в Clang 10 не может связать приложение C ++ с CMake на macOS 10.12 . Однако предложение добавить флаг -DCMAKE_CXX_FLAGS="-mlinker-version=305"
не применимо к процессу компиляции пакета R. Для R вам нужно добавить -mlinker-version=305
к LDFLAGS
к вашему Makevars
файлу, обычно расположенному в $HOME/.R/
.
My Makevars
основан на этой GitHub гисте . Я изменил LDFLAGS
с этого:
LDFLAGS+=-L$(HO)/llvm/lib -Wl,-rpath,$(HO)/llvm/lib
на это:
LDFLAGS+=-L$(HO)/llvm/lib -Wl,-rpath,$(HO)/llvm/lib -mlinker-version=305
Это разрешило ошибку ld
при компиляции mgcv
из источника.
Для пакета igraph
добавления флага mlinker
к LDFLAGS
было недостаточно; его также нужно было добавить в флаги C ++. В сущности Makevars
выше это делается путем добавления -mlinker-version=305
к STD_FLAGS
, что затем добавляет флаг к CXX**FLAGS
для всех версий C ++.