2013-10-08 4 views
5

Является ли стандартом иметь только динамические библиотеки в основном без их статической версии? Я особенно спрашиваю о математической библиотеке. В моей Fedora 17 (Linux-машина на процессоре Intel 32) у меня есть последняя версия gcc, и у нее есть libm-2.15.so и файл символической ссылки libm.so, но нет libm.a.Почему нет статической библиотеки для математических функций?

Является ли libm.a отсутствующим в моей системе?

+3

Это, скорее всего, будет очень специфичным для вашего распределения, но мой ubuntu 13.04 имеет libm.a, расположенный по адресу /usr/lib/x86_64-linux-gnu/libm.a. Вы правильно посмотрели во всех возможных местах, где можно хранить файлы libs? – goji

+0

@Troy Я сделал поиск в корне для libm.a, но не повезло. есть ли другой способ проверить его присутствие в моей системе? Я использую fedora 17. – KawaiKx

+3

Установили ли вы статические библиотеки? 'yum install glibc-static' – SheetJS

ответ

11

Установите статические библиотеки:

# yum install glibc-static 
0

обычно .somand. Существует одновременно, но длл приходит первым.

Возможно, статическая библиотека отсутствует, вы можете попробовать команду yum, как сказал nirk.

0

Вы спрашиваете:

ли это стандарт иметь только динамические библиотеки в основном без их статической версии?

В Fedora это действительно стандартно только для пакетных динамических библиотек. От packaging guidelines:

Пакеты, в том числе библиотеки, должны, насколько это возможно, исключать статические библиотеки (например, путем настройки с помощью --disable-static). Статические библиотеки следует включать только в исключительных обстоятельствах. Приложения, связывающиеся с библиотеками, должны по возможности связываться с общими библиотеками, а не с статическими версиями.

и позже,

В целом, упаковщики настоятельно рекомендуется не грузить статическую LIBS если веские причины не существует.

... который продолжает говорить, что, когда такая библиотека является упакована, она должна быть в отдельном подпакете с суффиксом -static, так как в этом случае glibc-static.