文档章节

linux C -gcc -lm

 流云的博客
发布于 2015/04/18 21:58
字数 520
阅读 77
收藏 0
    使用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提供的所有库文件。

glibc并不是Linux平台唯一的基础C函数库,也有人在开发别的C函数库,比如适用于嵌入式系统的uClibc。

本文转载自:http://hi.baidu.com/vblbosqyblltuvr/item/2df105190de35d031994ec61

粉丝 2
博文 40
码字总数 18974
作品 0
武汉
私信 提问
Centos5.4安装lm_sensors 温度监控

下载lm_sensors 查找Linux上有没有安装sensors [root@localhost zhaocx]# rpm -qa |grep sensors 没有的话安装 [root@localhost zhaocx]# yum install lm_sensors [root@localhost zhaocx]#......

老牛
2010/12/30
1K
0
Android 上移植 Ghostscript 9.04 静态编译

一、说明 因为Android没有glib库,而gcc默认为动态编译,为了使程序能在开发板上运行,我们自己的C程序需要采用静态编译。 ghostscript的下载地址为http://downloads.ghostscript.com/public...

鉴客
2011/10/12
776
0
undefined reference to '_modsi3'和`__udivdi3'问题的分析与解决办法

undefined reference to `__modsi3'和`__udivdi3'问题的分析与解决办法 嵌入式开发交流群280352802,欢迎加入! 【编译器版本】 arm-linux-gcc 3.4.1 【问题描述】 在做嵌入式底层开发时(基...

长平狐
2013/06/03
323
0
linux 下查看cpu位数 内核等参数命令

linux 下查看cpu位数 内核等参数命令 # uname -a Linux euis1 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux (查看当前操作系统内核信息) # cat /etc/issu......

晨曦之光
2012/03/02
3K
0
linux 下查看cpu位数 内核等参数命令

linux 下查看cpu位数 内核等参数命令 # uname -a Linux euis1 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux (查看当前操作系统内核信息) # cat /etc/issu......

长平狐
2013/01/06
61
0

没有更多内容

加载失败,请刷新页面

加载更多

SpringBoot中 集成 redisTemplate 对 Redis 的操作(二)

SpringBoot中 集成 redisTemplate 对 Redis 的操作(二) List 类型的操作 1、 向列表左侧添加数据 Long leftPush = redisTemplate.opsForList().leftPush("name", name); 2、 向列表右......

TcWong
今天
3
0
排序––快速排序(二)

根据排序––快速排序(一)的描述,现准备写一个快速排序的主体框架: 1、首先需要设置一个枢轴元素即setPivot(int i); 2、然后需要与枢轴元素进行比较即int comparePivot(int j); 3、最后...

FAT_mt
昨天
4
0
mysql概览

学习知识,首先要有一个总体的认识。以下为mysql概览 1-架构图 2-Detail csdn |简书 | 头条 | SegmentFault 思否 | 掘金 | 开源中国 |

程序员深夜写bug
昨天
10
0
golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web

micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架...

非正式解决方案
昨天
7
0
前端——使用base64编码在页面嵌入图片

因为页面中插入一个图片都要写明图片的路径——相对路径或者绝对路径。而除了具体的网站图片的图片地址,如果是在自己电脑文件夹里的图片,当我们的HTML文件在别人电脑上打开的时候图片则由于...

被毒打的程序猿
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部