繁体   English   中英

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

[英]GCC -lm -lz -lrt options - what are they about?

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

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

-lz用于压缩? 什么压缩?

我不知道这是什么 - -lrt


有人可以指定这些东西:

  • 数学库 - 我们在包含<cmath><math.h>时使用的相同?
  • 压缩库 - 这是什么意思 - 提供了一些我们可以用来压缩文件的工具,或者帮助编译器/链接器做一些压缩工作?
  • -lz -是zlib的, http://zlib.net/
  • -lm - 是您计算出的数学库(实现定义为AFAIK)
  • -lrt - 提供POSIX实时扩展: http-lrt

-lz链接到zlib ,-lm链接到数学 ,-lrt链接到实时扩展库。

交换机-lX通常意味着加载库libX.so.

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

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

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

上面的答案都是正确的。 我要添加的一件事,就是我自己的C新手,是-l参数告诉编译器将你的代码链接到某个库。

对我和其他人来说,混淆是在调用-l加上lib的名称时没有空间。 所以-lz ,你链接到“z”

请注意,这些库安装在您的系统中。 要么他们带有您正在使用的发行版,要么使用包管理器安装或从源代码编译( makemake install ...)。 由于这些是非常基本的(和旧的)库APIS,因此它们的名称非常短。 当您在系统中进行并安装特定的库时,您会看到更多详细的名称标记-l

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM