Ошибка выполнения Solaris - ld: fatal: library -luutil: not found

Привет, ребята, надеюсь, что некоторые из вас, волшебники Solaris, смогут указать мне правильное направление ...

Предыстория: я компилирую программу, которая использует часть кода командной строки zfs. (находится здесь: https://github.com/illumos/illumos-gate/tree/master/usr/src/cmd/zfs)

Проблема: libuutil.so.1 присутствует в /usr/lib, но если я попытаюсь так скомпилировать ...

$ gcc -lzfs -L / usr / lib -luutil -lnvpair

ld: fatal: library -luutil: not found

Кто-нибудь может предложить исправление? Или причина того, что lib не находят?

Спасибо, парни!


person Awalias    schedule 17.08.2012    source источник
comment
В моей системе этот файл является символической ссылкой на /lib, но все равно не работает.   -  person Volker Stolz    schedule 17.08.2012
comment
Это похоже на следующее stackoverflow.com/ questions / 335928 /   -  person Ben van Gompel    schedule 17.08.2012
comment
kludge был cp /lib/libuutil.so.1 /lib/libuutil.so Я действительно не понимаю соглашения об именах ... но, по крайней мере, теперь он работает   -  person Awalias    schedule 17.08.2012


Ответы (1)


Вам необходимо установить ссылку на библиотеку libuutil.so. Как объясняется в сообщении, указанном Беном ван Гомпелем, и в этом сообщении:
https://blogs.oracle.com/mandalika/entry/quick_fix_to_the_linker
Вам нужно будет сделать:
ln -s /usr/lib/libuutil.so.1 /usr/lib/libuutil.so
Это потому, что ld ищет только имена, оканчивающиеся на .so, а не числа. Это простой механизм, позволяющий иметь несколько версий одной библиотеки (версия обозначается числом в конце), которые могут использоваться в процессе компиляции.

person MadWizard    schedule 27.08.2012