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

| 我知道,这些是一些通用/基本库,但是它们的确切含义是什么? 例如,我知道
-lm
是一些数学库,但这是标准数学库还是什么?
-lz
压缩?什么压缩? 而且我不知道这是什么-
-lrt
。 有人可以指定以下内容: 数学库-与包含
<cmath>
<math.h>
时使用的库相同吗? compress库-这是什么意思-提供了一些我们可以用来压缩文件的工具,或者可以帮助编译器/链接器执行某些compress-thing?     
已邀请:
-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实时扩展;另一种是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,可能包含在libstdc ++中(您的问题标记为C ++)。     
上面的答案都是正确的。作为我的C新手,我要添加的一件事是
-l
参数告诉编译器将代码链接到某个库。 我和其他人可能感到困惑的是,调用
-l
加上lib的名称时没有空格。所以
-lz
,您正在链接到\“ z \” 请注意,这些库已安装在您的系统中。它们是随您使用的发行版一起提供的,或者是使用软件包管理器安装的,或者是由源代码编译的(
make
make install
...)。 由于这些是非常基本(较旧的)库APIS,因此它们的名称非常简短。在系统中安装特定库的过程中,您会看到更多冗长的名称标记在那里的ѭ8。     

要回复问题请先登录注册