защо няма статична библиотека за математически функции?

Стандартно ли е да има само динамични библиотеки предимно без статичната им версия? По-специално питам за математическата библиотека. В моята fedora 17 (линукс машина с процесор 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, но без успех. има ли друг начин да проверя присъствието му в моята система? Използвам fedora 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 tho.   -  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