Я пытаюсь связать файл «lib guile_2.0_la-foreign.o», чтобы собрать guile-2.0.11 на macOS Sierra. Команда ld из файла make возвращает более десятка ошибок, похожих на
"_ffi_type_float", referenced from:
_fill_ffi_type in lib guile_2.0_la-foreign.o
ld: symbol(s) not found for architecture x86_64
где «_ffi_type_xxx» изменяется в позиции «xxx». Я установил libffi с hombrew и сказал CPPFLAGS и LDFLAGS, где найти lib и включить каталоги, но я все еще получаю ту же ошибку. Где можно найти эти символы?
В Makefile есть переменная окружения (LIBFFI_LIBS), которая указывает путь к библиотеке ffi. Мне не хватало флажка, указывающего компоновщику на фактическую ссылку на библиотеку.
Я изменил его значение с LIBFFI_LIBS="-L/usr/local/opt/libffi/lib"
в LIBFFI_LIBS="-L/usr/local/opt/libffi/lib -lffi"
и все ошибки о неопределенных символах ffi теперь исчезли.
Других решений пока нет …