почему нет статической библиотеки для математических функций?

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

libm.a отсутствует в моей системе?


person KawaiKx    schedule 08.10.2013    source источник
comment
Это, вероятно, будет очень специфичным для вашего дистрибутива, но в моей Ubuntu 13.04 libm.a находится в /usr/lib/x86_64-linux-gnu/libm.a. Вы внимательно изучили все возможные места для хранения библиотек?   -  person goji    schedule 08.10.2013
comment
@Troy Я искал в корне libm.a, но безуспешно. есть ли другой способ проверить его присутствие в моей системе? Я использую федору 17.   -  person KawaiKx    schedule 08.10.2013
comment
Вы установили статические библиотеки? yum install glibc-static   -  person SheetJS    schedule 08.10.2013
comment
Вы сделали find / -name "libm.a"? Я не совсем знаком с Fedora, поэтому я не уверен, как лучше всего найти, какой pkg должен его предоставить. Я подозреваю, что почти все дистрибутивы Linux будут предоставлять libm.a.   -  person goji    schedule 08.10.2013
comment
@Nirk Это должен быть ответ .... :)   -  person goji    schedule 08.10.2013
comment
@Nirk хорошо заметил. libm.a отсутствовал в моей системе, потому что glibc-static не был установлен. большое спасибо   -  person KawaiKx    schedule 08.10.2013


Ответы (3)


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

# yum install glibc-static
person SheetJS    schedule 08.10.2013

Ты спрашиваешь:

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

В Fedora действительно стандартно упаковывать только динамические библиотеки. Из рекомендаций по упаковке:

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

и позже,

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

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

person mattdm    schedule 07.12.2016

обычно .somand и .a существуют одновременно, но dll идет первым.

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

person suitianshi    schedule 08.10.2013