C语言的头文件和库文件(函数库)

分类: Unix环境高级编程 2011-04-17 14:37 2576人阅读 评论(1) 收藏 举报
语言cgcclinuxunix

在C语言中,头文件提供对常量的定义和对系统函数及库函数调用的声明(函数原型)。存放的标准位置是/usr/include目录及其子目录。

gcc的-I选项(增加头文件的搜索路径):gcc -I/usr/myInclude main.c 在标准位置及/usr/myInclude目录下查找main.c包含的头文件。

库文件是一组预先编译好的函数的集合,可以说是头文件函数原型的实现。存放的标准位置是/lib和/usr/lib目录。库文件总是以lib开头。标准C语言库文件(函数库)为libc.a文件。

gcc -o main main.c 默认情况,gcc只搜索标准C语言函数库。需要其他库如数学库(libm.a libm.so)则额外添加这一路径:

gcc -o main main.c /usr/lib/libm.a,

gcc -L选项(增加库文件的搜索路径): gcc -o main -L/usr/myLib main.c libmtemp.a

库文件类型:静态函数库(静态库).a文件,共享函数库(共享库).so文件.

自己写个静态库:

[cpp] view plaincopy
  1. /*hello.c*/
  2. #include<stdio.h>
  3. void sayHello()
  4. {
  5. printf("I am saying hello to you!/n");
  6. }
  7. /*param.c*/
  8. #include<stdio.h>
  9. void hasParam(char* arg)
  10. {
  11. printf("I have a param %s/n",arg);
  12. }
  13. /*头文件mylib.h*/
  14. void sayHello();
  15. void hasParam(char* arg);
  16. /**main.c**/
  17. #include "mylib.h"
  18. int main()
  19. {
  20. sayHello();
  21. hasParam("Param");
  22. return 0;
  23. }

Linux下运行命令:

gcc -c hello.c param.c

ar crv libcmy.a hello.o param.o——归档命令,生成库文件libcmy.a

ranlib libcmy.a——为函数库生成内容表,Berkerley Unix衍生系统必需的,Linux非必需(做了也无害)

gcc -o main main.c libcmy.a——运行方式1

gcc -o main main.c -L. -lcmy——运行方式2

C语言的头文件和库文件(函数库)相关推荐

  1. 静态库,动态库是啥,有啥区别(静态函数库/动态函数库)

    因之前初学接触这个概念的时候无法直观的理解,询问多人也得到类似如下回复:静态库就是静态库,动态库就是动态库.一个编译一个不编译等类似的回复.伪善的人太多,披着"有问题可以问我"的外 ...

  2. 标准C函数库头文件、POSIX标准库头文件和Windows API函数库头文件说明

    1. 标准C函数库头文件 名字 源自 描述 <assert.h> 包含断言宏,被用来在程序的调试版本中帮助检测逻辑错误以及其他类型的bug. <complex.h> C99 一 ...

  3. 【Android 内存优化】Android 原生 API 图片压缩原理 ( Bitmap_compress 方法解析 | Skia 二维图形库 | libjpeg 函数库 | libpng 函数库 )

    文章目录 一. 图片质量压缩方法 二. Skia 二维图形库 三. libjpeg.libpng 函数库引入 在博客 [Android 内存优化]图片文件压缩 ( Android 原生 API 提供的 ...

  4. matlab c 函数库,matlab 函数库 去哪下载

    这是别人总结的三种编译的方法 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 方法一: 已有gui.m文件和gui.fig文件 1 在matlab的command窗口中输入 mcc ...

  5. C语言常用函数/标准工具函数库/数学函数库

  6. matlab的函数库,matlab函数库大全

    matlab中统计工具箱函数大全 MATLAB统计工具箱包括概率分布.方差分析.假设检验.分布检验.非参数检验.回归分析.判别分析.主成分分析.因子分析.系统聚类分析.K均值聚类分析.试验设计.决策树 ...

  7. 手机matlab函数库,MATLAB函数库

    A a abs 绝对值, 模 acos 反余弦 acosh 反双曲余弦 acot 反余切 acoth 反双曲余切 acsc 反余割 acsch 反双曲余割 all 所有元素均非零则为真 alpha 透 ...

  8. 【Android FFMPEG 开发】Android Studio 工程配置 FFMPEG ( 动态库打包 | 头文件与函数库拷贝 | CMake 脚本配置 )

    文章目录 I . FFMPEG 交叉编译后的函数库及头文件 II . FFMPEG 静态库打包动态库 ( 仅做参考 ) III . 创建 Android Studio 工程 IV . FFMPEG 头 ...

  9. 很详细、很移动的Linux makefile教程:介绍,总述,书写规则,书写命令,使用变量,使用条件推断,使用函数,Make 的运行,隐含规则 使用make更新函数库文件 后序...

    很详细.很移动的Linux makefile 教程 内容如下: Makefile 介绍 Makefile 总述 书写规则 书写命令 使用变量 使用条件推断 使用函数 make 的运行 隐含规则 使用m ...

  10. 4.树莓派Linux分文件编程、动态库与静态库

    分文件编程 分文件编程案例: 网络 a 超声波 b 电机 c 分文件编程好处: a.功能责任划分 b.方便调试 c.主程序简洁 主程序: 注意:主程序必须包含分程序的 #include "x ...

最新文章

  1. Redis 之布隆过滤器与布谷鸟过滤器
  2. mysql btmp 删除_mysql-如何在VDS上运行docker(lxd /容器)
  3. ActiveMQ消息中间件简明笔记(1)——理论知识点整理
  4. 我决定重新开始搞机器学习啦
  5. linux常用网络诊断命令,linux网络常用诊断工具
  6. unity导出工程导入到iOS原生工程中详细步骤
  7. appium-在页面点击一下处理(一般处理提示蒙层)
  8. unity hub服务器无响应_累积更新KB4541335反馈称无法安装 出现无响应情况
  9. Spark-大规模数据处理计算引擎
  10. CNN转换为SNN的算法
  11. 外媒:日本和芬兰将合作开发6G技术 诺基亚将参与其中
  12. 碎裂效果尝试(clip-path篇)
  13. 目标检测——Detectron2的学习笔记
  14. nlv sqlserver_SQLServer数据类型及使用分析
  15. android双击返回键退出程序
  16. 图片放大后怎么把图片变清晰?
  17. 计算机 取得高级权限,win10获取system权限,win7获取最高权限
  18. Linux服务器重启导致数据丢失问题解决
  19. QNX Hypervisor —— 内存
  20. Android换肤功能实现与换肤框架QSkinLoader使用方式介绍

热门文章

  1. 图集内子图压缩及 ETC2 fallback选项的作用
  2. 关于AB包的释放与 Resources.UnloadUnusedAssets的关系
  3. 项目用的几种机型参数调查
  4. CentOS搭建FTP
  5. 如何恢复电脑系统桌面
  6. C# addin 开发心得记录
  7. Java剖析工具JProfiler入门使用教程:离线剖析和触发器
  8. 领域驱动设计案例:Tiny Library:领域模型
  9. symbian 视频播放解决方案
  10. 值得推荐的中文版WF/WCF图书