为什么我必须显式链接 libm? [复制]

2024-04-01

可能的重复:
为什么必须链接C 中的数学库? https://stackoverflow.com/questions/1033898/why-do-you-have-to-link-the-math-library-in-c

当我编写一个使用以下函数的程序时math.h库,为什么我必须显式链接到libm即使它们是 C 标准库的一部分?

例如,当我想使用sin()我需要的功能#include <math.h>但我还需要通过-lm到海湾合作委员会。但对于标准库中的任何其他库,我不必这样做。为什么有区别?


在过去,链接器速度很慢,将大部分未使用的数学代码与其余代码分开可以使编译过程变得更快。今天的差异不是很大,所以您可以添加-lm默认编译器配置的选项。


请注意,标头<math.h>(或任何其他标头)不包含代码。它包含有关代码的信息,特别是how来调用函数。代码本身位于库中。我的意思是,你的程序不使用"<math.h>图书馆”,它使用数学库并使用在<math.h> header.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我必须显式链接 libm? [复制] 的相关文章

  • CMake 找不到请求的 Boost 库

    既然我已经浏览了其他人的解决方案几个小时 但找不到适合我的问题的正确答案 我想将我的具体问题带给您 我正在尝试使用 CMake 构建 vsomeip 为此 我之前构建了 boost 1 55 但是 我在 CMake 中收到以下错误 The
  • 单元测试验证失败

    我正在运行我的单元测试PostMyModel路线 然而 在PostMyModel 我用的是线Validate
  • 在 Java 中创建 T 的新实例

    在C 中 我们可以定义一个泛型class A
  • 将完整模板参数值映射到原始类型

    我想将数字映射到类型 在这个例子中 我将创建一个函数 将 sizeof 结果映射到有符号的原始类型 我想知道是否有更好的方法来完成我在现代 C 中所做的事情 即采用模板化值并将其转换为类型 现在 这可以将大小转换为已知类型 但我似乎无法在标
  • 如何使用 SOAP 且不使用 WSE 在 .NET 中签署 Amazon Web 服务请求

    亚马逊产品广告 API 以前称为 Amazon Associates Web Service 或 Amazon AWS 实施了一项新规则 即自 2009 年 8 月 15 日起 向其发送的所有 Web 服务请求都必须经过签名 他们在其网站上
  • 检测到堆栈崩溃

    我正在执行我的 a out 文件 执行后 程序运行一段时间 然后退出并显示消息 stack smashing detected a out terminated Backtrace lib tls i686 cmov libc so 6 f
  • 如何制作可启动程序?

    所以 这个问题可能看起来很奇怪 但假设我编译了 int main void int x 3 int y 4 int z x y 是否可以让CPU这样运行 如何 例如 这允许我写入监视器吗 如果我没记错的话 内存中有些地方可以写入要显示的内容
  • C# 5 async/await 线程机制感觉不对?

    为什么让调用线程进入异步方法直到内部 等待 一旦调用异步方法就生成一个线程 这不是更干净吗 这样您就可以确定异步方法会立即返回 您不必担心在异步方法的早期阶段没有做任何昂贵的事情 我倾向于知道某个方法是否要在 我的 线程上执行代码 不管是堵
  • 为什么'enable_if'不能用于禁用这里声明

    include
  • 将表(行)与 OpenXML SDK 2.5 保持在一起

    我想在 Word 文档中生成多个表 每行 2 行 但我想将这两行保留在一起 如果可能的话 new KeepNext 第一行不起作用 new KeepNext 第一行的最后一段不起作用 new CantSplit 放在桌子上不起作用 在所有情
  • 使用 LINQ 更新 IEnumerable 对象的简单方法

    假设我有一个这样的业务对象 class Employee public string name public int id public string desgination public int grade List
  • 获取 boost Spirit 语法中的当前行

    我正在尝试使用 boostspirit 获取正在解析的文件的当前行 我创建了一个语法类和结构来解析我的命令 我还想跟踪在哪一行找到命令并将其解析到我的结构中 我将 istream 文件迭代器包装在 multi pass 迭代器中 然后将其包
  • 访问 ascx 文件中的母版页控件

    我有一个母版页文件 其中包含 2 个面板控件中的 2 个菜单 我还使用控件来检查用户是否登录并获取用户类型 根据我想要显示 隐藏面板的类型 控件本身不在母版页中引用 而是通过 CMS 系统动态引用 我想在用户控件中使用findcontrol
  • 使用查询表达式对 List 进行排序

    我在使用 Linq 订购这样的结构时遇到问题 public class Person public int ID get set public List
  • 根据对象变量搜索对象列表

    我有一个对象列表 这些对象具有三个变量 ID 名称和值 这个列表中可能有很多对象 我需要根据ID或Name找到一个对象 并更改值 例子 class objec public string Name public int UID public
  • 使用 C# 和 wpf 创建类似 Dock 的应用程序

    我需要创建一个与我们购买笔记本电脑时获得的应用程序类似的应用程序 仅当鼠标指针到达窗口顶部时它才可见 那么我怎样才能使用 C 4 0 来做到这一点呢 http www notebookcheck net uploads pics win2
  • Linux mremap 不释放旧映射?

    我需要一种方法将页面从一个虚拟地址范围复制到另一个虚拟地址范围 而无需实际复制数据 范围很大 延迟很重要 mremap 可以做到这一点 但问题是它也会删除旧的映射 由于我需要在多线程环境中执行此操作 因此我需要旧映射能够同时使用 因此稍后当
  • 逆向工程 ASP.NET Web 应用程序

    我有一个 ASP NET Web 应用程序 我没有源代码 该 bin 包含 10 个程序集和一个 compiled 文件 我在 App Code dll 上使用 Reflector 它向我显示了类和命名空间之类的东西 但它太混乱了 有没有什
  • 如何调试 .NET 运行时中的内部错误?

    我正在尝试调试一些处理大文件的工作 代码本身works 但 NET 运行时本身会报告零星错误 对于上下文 这里的处理是一个 1 5GB 文件 仅加载到内存中一次 在循环中处理和释放 故意尝试重现此否则不可预测的错误 我的测试片段基本上是 t
  • 为什么以下 C 程序会出现总线错误?

    我认为这是第一个失败的 strtok 调用 好久没写C了 有点不知所措 非常感谢 include

随机推荐

  • WPF DataTrigger 值中的绑定

    嗯 这可能是一个简单的问题 但我无法找到解决方案 我有一个DataTrigger as
  • 使用xarray,如何在多维数据集上并行化一维操作?

    我有一个 4D xarray 数据集 我想在特定维度 此处为时间 上的两个变量之间进行线性回归 并将回归参数保留在 3D 数组中 其余维度 我设法通过使用此串行代码获得了我想要的结果 但速度相当慢 add empty arrays to s
  • 在图形工具、Python 界面中从邻接矩阵创建加权图

    我应该如何使用 python 中的图形工具从邻接矩阵中创建图形 假设我们有adj矩阵作为邻接矩阵 我现在做的是这样的 g graph tool Graph directed False g add vertex len adj edge w
  • XML 解析以获取描述选项卡

    我如何使用 android 中的 xml 解析来解析描述详细信息
  • Windows 7 上的 GetWindowRect 太小

    我想要解决的实际问题是 我想自动找出窗口周围边距的大小 如果您能找到更好的方法 请务必回答这个而不是这个 为此 我决定截取测试窗口的屏幕截图并测量边距 这很简单 因为我预计任何边距都不会是亮粉色 但我承认这是一个黑客行为 我用获取窗口矩形
  • Go-复制结构之间的所有公共字段

    我有一个存储 JSON 的数据库 以及一个提供外部 API 的服务器 通过 HTTP post 可以更改该数据库中的值 该数据库由不同的进程在内部使用 因此具有通用的命名方案 客户看到的密钥不同 但与数据库中的密钥进行 1 1 映射 存在未
  • 使用 Parse 创建 Stripe 客户

    我正在尝试使用解析创建一个条带客户 但似乎无法从响应中获取 customer id 值 var newCustomer Stripe Customers create card request params cardToken email
  • Objective-c:访问方法中的可变参数[重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Objective C 中创建可变参数方法 https stackoverflow com questions 4804674 how to create variable argument
  • 紧凑的等于和哈希码

    我有一个有 4 个属性的 bean user institutionId groupId postingDate 我使用 Eclipse 生成 equals 和 hashcode 但生成的代码不太漂亮 有没有一种紧凑的方法可以做到同样的事情
  • 将ELF文件加载到内存中

    我正在尝试将 elf 文件放入内存然后执行它 步骤如下 1 要放入内存的文件 int main printf Hello world n return 0 2 编译它gcc o hello hello c static ELF Header
  • 如何锁定 Django 中的关键部分?

    我找不到一个好的干净方法来锁定 Django 中的关键部分 我可以使用锁或信号量 但 python 实现仅适用于线程 因此如果生产服务器分叉 那么这些将不会受到尊重 有谁知道一种方法 我现在正在考虑 posix 信号量 来保证跨进程的锁定
  • Docker Weave 和 WeaveDNS 问题

    我在本地计算机上运行的小型 weave 网络上设置 weaveDNS 时遇到问题 目前 问题表现为以下事实 当我运行 weave status 时 我在输出中没有看到 DNS 部分 如故障排除部分中所建议的那样 http docs weav
  • 如何正确使用倒计时线程,如何提前停止它?

    线程没有按我期望的方式工作 我有一个可行的解决方案 可以使用 Raspberry Pi 和簧片开关监控冰箱何时打开和关闭 声音播放未暂停和暂停 我现在想添加一个计时器 以便在门打开时间过长时执行某些操作 我认为启动一个在警报操作之前休眠 x
  • 排列 R 中向量的所有唯一枚举

    我试图找到一个函数来排列所有unique向量的排列 而不计算相同元素类型子集中的并置 例如 dat lt c 1 0 3 4 1 0 0 3 0 4 has factorial 10 gt 3628800 可能的排列 但仅10 2 2 4
  • R 中的“=”和“<-”有什么区别? [复制]

    这个问题在这里已经有答案了 我正在使用 R 2 8 1 并且可以同时使用 and lt 作为变量赋值运算符 他们之间有什么区别 我应该使用哪一个 From here http stat ethz ch R manual R patched
  • html 仅选择一组中的一个复选框

    那么如何才能只允许用户选择一个复选框呢 我知道单选按钮是 理想的 但就我的目的而言 它不是 我有一个字段 用户需要选择两个选项之一 但不能同时选择两个选项 问题是我需要我的用户也能够取消选择他们的选项 这就是单选按钮失败的地方 因为一旦选择
  • 使用.NET删除矩形?

    我可以删除我绘制的旧矩形并绘制新矩形吗 private void panel1 MouseClick object sender MouseEventArgs e Graphics g this panel1 CreateGraphics
  • 使用 Visual Studio 2008 远程调试 Web 应用程序的服务器端

    因此 我读到在我的测试服务器计算机上安装 VS2008 不是一个好主意 因为它对运行时环境的改变太大 我以前从未尝试过使用 Visual Studio 进行远程调试 那么对服务器端 Web 应用程序代码进行逐行远程调试的 最佳 方法是什么
  • Turbolinks 不工作 - 而是加载页面两次

    所以 在我的 Rails 4 应用程序中 我有 Turbolinks gem require jquery js require jquery turbolinks require turbolinks 然而 似乎有些不对劲 Turboli
  • 为什么我必须显式链接 libm? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么必须链接C 中的数学库 https stackoverflow com questions 1033898 why do you have to link the math library in