Linux下的C语言pow()函数引出的问题
来源:互联网 发布:ubuntu恢复系统 编辑:程序博客网 时间:2024/05/17 21:53
gcc test.c //运行报错gcc test.c -lm //运行正常 下面是原话With all recent versions of GCC, when you use the math libraryyou have to explicitly link to it (it is not automatically linked to along with the rest of the standard C library).If you arecompiling on the command-line with the gcc or g++ command, youwould accomplish this by putting -lm at the end of the command.For example: gcc -o foo foo.c -lm
Linux下的C语言pow()函数引出的问题
本文由 Ricky 发表于 2015 年 09 月 08 日 已浏览
今天才Linux下用math.h库的pow()函数,gcc编译的时候报错返回:对‘pow’未定义的引用
查了下资料,需要在gcc编译的时候加上-lm参数才能正常编译。
这是为什么呢?再查了下资料:
使用math.h中声明的库函数还有一点特殊之处,gcc命令行必须加-lm选项,因为数学函数位于libm.so库文件中(这些库文件通常位于/lib目录下),-lm选项告诉编译器,我们程序中用到的数学函数要到这个库文件里找。本书用到的大部分库函数(例如printf)位于libc.so库文件中,使用libc.so中的库函数在编译时不需要加-lc选项,当然加了也不算错,因为这个选项是gcc的默认选项。
C标准主要由两部分组成,一部分描述C的语法,另一部分描述C标准库。C标准库定义了一组标准头文件,每个头文件中包含一些相关的函数、变量、类型 声明和宏定义。要在一个平台上支持C语言,不仅要实现C编译器,还要实现C标准库,这样的实现才算符合C标准。不符合C标准的实现也是存在的,例如很多单 片机的C语言开发工具中只有C编译器而没有完整的C标准库。
在Linux平台上最广泛使用的C函数库是glibc,其中包括C标准库的实现。几乎所有C程序都要调用glibc的库函数,所以glibc是Linux平台C程序运行的基础。glibc提供一组头文件和一组库文件,最基本、最常用的C标准库函数和系统函数在libc.so库文件中,几乎所有C程序的运行都依赖于libc.so,有些做数学计算的C程序依赖于libm.so,以后我们还会看到多线程的C程序依赖于libpthread.so。以后我说libc时专指libc.so这个库文件,而说glibc时指的是glibc提供的所有库文件。
转载:http://www.rickyhao.com/index.php/archives/64/
- Linux下的C语言pow()函数引出的问题
- C语言中关于pow()函数的问题
- C语言之编译器引出的问题
- C语言的求幂函数POW
- 水滴石穿C语言之编译器引出的问题
- 水滴石穿C语言之编译器引出的问题
- 水滴石穿C语言之编译器引出的问题
- 【转】水滴石穿C语言之编译器引出的问题
- gcc编译器下pow函数编译的问题
- Linux下的C语言函数perror
- linux下C语言编译的问题
- Linux下C语言编程的问题
- c++虚函数引出的问题
- C程序设计奥秘笔记之C语言自身引出的问题
- [C/C++]C语言中math.h和cmath的pow()精度问题
- C语言10的n次方pow函数不好用,自己写一个简单的
- 添加菜单遇到的问题引出的linux下gksu和sudo的分别
- linux下的C语言带参数的main函数
- Python连接Redis连接配置
- SIPP工具使用之多方通话__3pcc
- 结构体
- Eclipse的安装配置过程
- Spring整合JUnit框架进行单元测试代码使用详解
- Linux下的C语言pow()函数引出的问题
- memcache的介绍与操作
- Android仿淘宝tab返回
- DevOps看作开发(软件工程)、技术运营和质量保障(QA)三者的交集
- Ubuntu14.04安装之后遇到的问题解决方案
- 基于JQuery网页漂浮广告窗口Js详解
- 2016.4.6
- 将amr文件转成mp3
- android系统自带的振动器以及倒计时器