访问C库

用#include引入头文件只是复制了库函数的声明,实际使用时寻找库函数的实现是由编译器或链接器实现的。不同系统使用不同的方法搜索库函数,有三种可能性。

一、自动访问

许多系统上,你只需编译程序,一些常见的库函数自动可用(甚至不用引入头文件)

二、文件包含

如果函数定义为宏,可使用#include指令来包含拥有该定义的文件

三、库包含

在程序编译或链接的某些阶段,您可能需要指定库选项。因为即使在自动检查标准库的系统上,也有可能有不常用的函数库。必须使用编译时选项来显示地指定这些库。

注意要把这个过程与包含头文件区分,因为头文件提供函数的声明或原型,而库选项告诉系统到哪儿寻找函数代码。

例如你#include<math.h>

然后在函数中使用了sqrt函数(求平方)

但是在编译时却得到了类似下面的消息

Undefined:_sqrt

或:

'sqrt':unresolved external

或是类似的消息,这表明编译器的链接器没有找到数学库。

此时你可以在命令行手动的让链接器找到数学库

UNIX系统要求使用-lm标记

cc a.c -lm

其中cc是编译器的名字,a.c是源文件的名字

Linux的gnu编译器也使用同样的形式

gcc a.c -lm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值