В процессе компилирования необходимого набора программ для 64 бит, я в очередной рад воспользовался замечательной утилитой crle, и снова отметил, насколько проще становится жизнь если её использовать.
В странице-руководстве (man crle) сказано вот что:
The crle utility provides for the creation and display of a runtime linking configuration file. The configuration file is read and interpreted by the runtime linker, ld.so.1(1), during process start-up.
И именно этим утилита и полезна - можно указать, где компоновщику следует искать необходимые библиотеки в первую очередь, и многие проблемы пропросту исчезнут.
Так что бы мы делали без этой замечательной утилиты? Всё очень просто:
1) указывали бы обязательно дополнительные параметры для компиляторов - пути к библиотекам с параметрами -L и -R
2) Пользовались бы старой и надёжной переменной LD_LIBRARY_PATH, которая так же позволяет указывать каталоги, откуда компоновщику стоит брать библиотеки.
Мало того, что это неудобно потому, что нужно тратить дополнительное время, так ещё и настройки эти годятся только для конкретного пользователя - и любой другой, кто захочет использовать скомпилированную с помощью подобных ухищрений программу, вынужден будет делать то же самое - устанавливать себе аналогичное значение LD_LIBRARY_PATH.
А с crle всё гораздо проще:
для просмотра текущих параметров работы компоновщика (списков каталогов), нужно просто запустить команду:
-bash-3.00$ crle
Default configuration file (/var/ld/ld.config) not found
Default Library Path (ELF): /lib:/usr/lib (system default)
Trusted Directories (ELF): /lib/secure:/usr/lib/secure (system default)
для просмотра конфигурации при работе компоновщика с 64-битными объектами, нужно указать соответствующий параметр:
-bash-3.00$ crle -64
Configuration file [version 4]: /var/ld/64/ld.config
Default Library Path (ELF): /lib/64:/usr/lib/64:/usr/sfw/lib/64
Trusted Directories (ELF): /lib/secure/64:/usr/lib/secure/64 (system default)
Command line:
crle -64 -c /var/ld/64/ld.config -l /lib/64:/usr/lib/64:/usr/sfw/lib/64
И как видно из примера, достаточно выполнить вот такую команду, чтобы добавить новый каталог к списку тех, где компоновщик будет искать библиотеки. Например, если я хочу добавить к списку свой собственный каталог /export/soft/lib/64, то сделать это можно вот так:
-bash-3.00$ crle -64 -c /var/ld/64/ld.config -l /lib/64:/usr/lib/64:/usr/sfw/lib/64:/export/soft/lib/64
Источник: http://solaris.reys.net/2006/04/crle