Ответ 1
-
-lz
- это zlib, http://zlib.net/ -
-lm
- это математическая библиотека, которую вы разработали (реализация определена AFAIK) -
-lrt
- предоставляет постоянные расширения POSIX: http://www.s-gms.ms.edus.si/cgi-bin/man-cgi?librt+3LIB
Я знаю, что это некоторые общие/базовые библиотеки, но что они означают?
Например, я знаю, что -lm
является некоторой математической библиотекой, но является ли это стандартной математической библиотекой или что?
-lz
для сжатия? Какое сжатие?
И я не знаю, что это такое - -lrt
.
Может ли кто-то указать эти вещи:
<cmath>
или <math.h>
?-lz
- это zlib, http://zlib.net/-lm
- это математическая библиотека, которую вы разработали (реализация определена AFAIK)-lrt
- предоставляет постоянные расширения POSIX: http://www.s-gms.ms.edus.si/cgi-bin/man-cgi?librt+3LIB-lz ссылки на zlib, -lm на математике и -lrt в библиотеке в режиме реального времени.
Коммутатор -lX обычно означает загрузку библиотеки libX.so.
libm - стандартная математическая библиотека; он содержит sin(), cos(), atanh(), все эти хорошие вещи.
libz - это Zlib, библиотека сжатия, которая может выполнять gzip, deflate и несколько других форматов.
Есть несколько разных librt: один - это расширения в реальном времени POSIX; другая - библиотека вспомогательных программ общего назначения.
libm http://refspecs.freestandards.org/LSB_3.0.0/LSB-Core-generic/LSB-Core-generic/libm.html
libz http://refspecs.freestandards.org/LSB_3.0.0/LSB-Core-generic/LSB-Core-generic/libzman.html
librt http://www.rdg.ac.uk:8081/cgi-bin/cgiwrap/wsi14/poplog/man/3LIB/librt
Все они являются стандартными C afaik, возможно, включенными в libstdС++ (ваш вопрос отмечен С++).
Ответы выше все правильные. Единственное, что я хотел бы добавить, будучи самим новичком C, состоит в том, что аргумент -l
указывает компилятору связать ваш код с какой-то библиотекой.
Путаница для меня и, возможно, других заключается в том, что нет места при вызове -l
плюс имя lib. поэтому -lz
, вы ссылаетесь на "z"
Обратите внимание, что эти библиотеки установлены в вашей системе. Либо они пришли с дистрибутивом, который вы используете, либо вы установили с помощью диспетчера пакетов или скомпилированы из источника (make
, make install
...).
Поскольку это очень простая (и старая) библиотека APIS, у них очень короткие имена. По мере продвижения и установки определенных библиотек в вашей системе вы увидите более подробные имена, помеченные тегом -l
.