Как исправить libtool: неопределенные символы не разрешены в общем доступе x86_64-pc-msys

Я пытаюсь собрать пакет heimdal для msys2. К моему огорчению, при линковке первой составляющей библиотеки, roken, dll не собираются, и это вызывает как бы цепную реакцию в дальнейшем.

Единственное сообщение, которое я получаю:

libtool: неопределенные символы не разрешены в общем доступе x86_64-pc-msys ... будут созданы только статические

однако нет информации о том, какие символы не определены. Как я могу это узнать?

Если я включу вывод команд с make V=1, я получу команду libtool, которая связывается с большим количеством файлов .lo. Если я попытаюсь запустить над ними gcc (копируя команду оттуда), он их ни за что не распознает.

Я пытаюсь следовать инструкциям, изложенным в скрипте сборки пакета msys2 для heimdal< /а>.


person Srv19    schedule 14.04.2020    source источник


Ответы (1)


В Windows создание разделяемой библиотеки с использованием неопределенных символов не допускается.

Попробуйте выполнить сборку с флагом компоновщика -Wl,-no-undefined, например, добавив LDFLAGS="-Wl,-no-undefined" к команде ./configure.

Если это не сработало, попробуйте это после ./configure и до make:

sed -i.bak -e "s/\(allow_undefined=\)yes/\1no/" libtool

Если у вас уже была неудачная сборка ранее, вы также должны очистить все файлы .la перед повторным запуском make:

rm $(find -name '*.la')
person Brecht Sanders    schedule 06.06.2020