GCC -lm -lz -lrt选项 - 它们是关于什么的?

Kir*_*rov 20 c++ unix linker gcc

我知道,这些是一些常见的/基本的库,但它们究竟是什么意思?

例如,我知道,这-lm是一些数学库,但这是标准的数学库还是什么?

-lz压缩?什么压缩?

我不知道这个是什么 - -lrt.


有人可以指定这些东西:

  • 数学库 - 我们在包含时使用的相同<cmath>或者<math.h>
  • 压缩库 - 这是什么意思 - 提供了一些我们可以用来压缩文件的工具,或者帮助编译器/链接器做一些压缩工作?

Nim*_*Nim 20

  • -lz- 是zlib,http://zlib.net/
  • -lm - 你已经解决了数学库(实现定义了AFAIK)
  • -lrt- 提供POSIX实时扩展:http://www.s-gms.ms.edus.si/cgi-bin/man-cgi?librt +3LIB


Ern*_*ill 6

开关 -lX 通常表示加载库 libX.so。

libm 是标准数学库;它包含 sin()、cos()、atanh(),所有这些好东西。

libz 是 Zlib,一个压缩库,可以执行 gzip、deflate 和其他一些格式。

有几个不同的 librt:一个是 POSIX 实时扩展;另一个是 POSIX 实时扩展。另一个是通用编程辅助工具库。