我知道这些是一些常见的/基础库,但它们确切地意味着什么?
例如,我知道-lm
是某个数学库,但这是标准数学库还是其他数学库?
-lz
是用于压缩的吗?压缩什么?
而我对-lrt
毫无头绪。
这些东西是什么?
- 数学库。它是否与我们包含
<cmath>
或<math.h>
时使用的库相同? - 压缩库。这是什么意思?它提供了一些工具来压缩文件,还是帮助编译器/链接器做一些压缩操作?
我知道这些是一些常见的/基础库,但它们确切地意味着什么?
例如,我知道-lm
是某个数学库,但这是标准数学库还是其他数学库?
-lz
是用于压缩的吗?压缩什么?
而我对-lrt
毫无头绪。
这些东西是什么?
<cmath>
或<math.h>
时使用的库相同?-lz
- 是zlib,http://zlib.net/-lm
- 是数学库(实现可能因编译器不同而异)-lrt
- 提供POSIX实时扩展:http://www.s-gms.ms.edus.si/cgi-bin/man-cgi?librt+3LIB开关-lX通常意味着加载库libX.so。
libm是标准数学库,包含sin(),cos(),atanh()等等好东西。
libz是Zlib,一个压缩库,可以进行gzip,deflate和其他一些格式。
有几个不同的librt:一个是POSIX实时扩展;另一个是通用编程辅助库。
-lz 链接到 zlib,-lm 链接到 math,-lrt 链接到 realtime extensions 库。
-l
参数告诉编译器将你的代码与某个库链接起来。-l
加上库名时没有空格。所以,-lz
表示链接到“z”库。make
,make install
等)安装的。-l
。