即使使用 math.h 和库链接 -lm,也会出现“对‘pow’未定义引用”的情况 [重复]

2024-10-18 09:00:00
admin
原创
220
摘要:问题描述:我正在使用math.h和-lm选项进行编译。我已尝试了以下所有方法:gcc -o ssf ssf_tb.c ssf.c -lm gcc -o ssf ssf_tb.c -lm ssf.c gcc -o -lm ssf -lm ssf_tb.c ssf.c 但错误:undefined refer...

问题描述:

我正在使用math.h-lm选项进行编译。我已尝试了以下所有方法:

gcc -o ssf ssf_tb.c ssf.c -lm
gcc -o ssf ssf_tb.c -lm ssf.c   
gcc -o -lm ssf -lm ssf_tb.c ssf.c

但错误:

undefined reference to 'pow'  

在所有情况下都会发生。


解决方案 1:

把 放在-lm行末。

gcc 按照命令行中出现的顺序处理指定最终程序输入的参数。参数-lm被传递给链接器,然后ssf.c编译该参数,并将生成的目标文件传递给链接器。

链接器还会按顺序处理输入。当它看到指定的库时-lm,它会查看该库是否提供了链接器当前需要的任何符号。如果是,它会从库中复制带有这些符号的模块并将其构建到程序中。当链接器看到对象模块时,它会将该对象模块构建到程序中。将对象模块引入程序后,链接器不会返回并查看是否需要早期库中的任何内容。

由于您首先列出了库,因此链接器没有看到它需要的库中的任何内容。如果您首先列出对象模块,则链接器会将对象模块带入程序。在此过程中,链接器将列出对象所需的所有未定义符号。然后,当链接器看到库时,它将看到库提供了这些符号的定义,并且它将带有这些符号的模块带入程序。

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1319  
  IPD(Integrated Product Development)项目管理作为一种先进的产品开发管理模式,在众多企业中得到了广泛应用。它旨在通过整合企业的各种资源,实现产品的快速、高质量开发,从而提升企业的市场竞争力。IPD项目管理涵盖多个方面,其中五大核心要素尤为关键,它们相互关联、相互影响,共同构成了IPD项目...
IPD流程中PDCP是什么意思   30  
  IPD(Integrated Product Development)即集成产品开发,是一套先进的、成熟的产品开发管理思想、模式和方法。它强调将产品开发视为一个完整的流程,涵盖从概念产生到产品退市的全生命周期,通过跨部门团队的协同合作,实现缩短产品上市时间、提高产品质量、降低成本等目标。IPD测试流程作为IPD体系的重...
华为IPD流程   27  
  华为 IPD 产品开发流程是一套先进且成熟的产品开发管理体系,在提升企业产品竞争力、促进团队协作等方面发挥着重要作用。它以市场为导向,强调跨部门团队的协同合作,旨在实现产品的快速、高质量交付,满足客户需求并提升企业的经济效益。通过深入了解和应用 IPD 产品开发流程,企业能够优化内部资源配置,提高团队协作效率,从而在激...
IPD管理流程   26  
  IPD(Integrated Product Development)即集成产品开发,是一套先进的、成熟的产品开发管理思想、模式和方法。它强调将产品开发视为一个完整的流程,涵盖从概念产生到产品退市的全生命周期,涉及市场、研发、生产、销售、售后等多个部门的协同合作。构建高效的项目管理文化对于企业的发展至关重要,而IPD培...
IPD开发流程管理   21  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用