头文件提供声明,库文件提供定义/实现。 C 代码的编译过程: 预处理(需要头文件) -> 编译 -> 汇编 -> 链接(需要库文件); 执行时可能还有动态链接过程。

编译的时候,只要有头文件中的声明就足够了。在链接的时候,把已经编译好的.obj和现有的.lib文件进行链接,这时就可以最终生成可执行文件了。其实头文件与其实现文件或相应lib文件都没有直接的联系。头文件是告诉编译器函数是如何去调用如何返回的,所有实现都是分别编译,最后在链接阶段链在一起。

头文件包含声明, 库文件包含实现或者与DLL库的连接          所以,如果在代码里要用到这些函数那么就要包含头文件,编译的时候才能知道这些函数的原形;          在进行代码连接的时候就需要库文件了,这时连接器就把函数的实现代码(静态库)连接到你的程序或者将你的函数调用连接到相应的DLL的对应函数(动态库)

lib是静态库, 编译的时候代码直接插入到你的程序 ,DLL是动态库,编译的时候,只是产生一些调用DLL内代码的导入表,真正运行的时候是调用的DLL内的代码

转载于:https://www.cnblogs.com/sshao/p/3977450.html

【转】头文件和库文件区别相关推荐

  1. 头文件与库文件的区别

    一.头文件与库文件的区别 头文件一般而言,是申明和定义. 库文件是已经编译好的二进制代码.这个二进制代码可以是动态的,如 .so :也可以是静态的,如 .a .如果是动态的,则最后生成的程序文件在运行 ...

  2. 头文件和库文件的区别

    头文件中有函数的申明,库文件实现函数的定义. 比如,printf函数.使用时应包括stdio.h,打开stdio.h你只能看到,printf这 个函数的申明,却看不到printf具体是怎么实现的,而函 ...

  3. .h头文件 .lib库文件 .dll动态链接库文件关系

    .h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的. 附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件.如果要完成源代码的编译和链接,有头文件和lib就够 ...

  4. .h头文件 .lib库文件 .dll动态库文件之间的关系

     .h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的. 附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件.如果要完成源代码的编译和链接,有头文件和li ...

  5. Linux找头文件规则,linux 头文件、库文件查找顺序

    linux 头文件.库文件查找顺序 默认分类 2009-11-14 01:24:28 阅读126 评论0 字号:大中小 linux 头文件.库文件查找顺序 2009-11-03 12:36 Inclu ...

  6. linux+C环境下动态管理头文件和库文件

    本文共分三个部分:首先给出了一个简单的Makefile的例子,然后分别详细阐述了头文件和库文件的相关知识 1.一个Makefile的例: -L是指定链接时搜索路径,比如-L./等: -l是指定具体的库 ...

  7. Linux下gcc编译中关于头文件与库文件搜索路径相关问题

    如何指定GCC的默认头文件路径 网上偶搜得之,以之为宝:) 原地址:http://blog.chinaunix.net/u/28781/showart.php?id=401631 ========== ...

  8. C程序背后的故事--头文件、库文件的查找

    文章目录 1 C程序中头文件.库文件的查找 1.1 头文件有什么用 1.2 C文件有什么用 1.3 头文件在哪里 1.4 printf函数在哪里 1.5 如何指定自己的库 1 C程序中头文件.库文件的 ...

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

    C语言的头文件和库文件(函数库) 分类: Unix环境高级编程 2011-04-17 14:37 2576人阅读 评论(1) 收藏 举报 语言cgcclinuxunix 在C语言中,头文件提供对常量的 ...

  10. linux应用开发:头文件和库文件的路径及使用

    1. 头文件 1)系统标准头文件位置: /usr/include下,以及安装库的头文件位置:/usr/local/include/ 如 #include<linux/can.h> 对应 / ...

最新文章

  1. R语言pmax函数和pmin函数按位计算向量最大值、最小值实战
  2. 翻译连载 | JavaScript轻量级函数式编程-第7章: 闭包vs对象 |《你不知道的JS》姊妹篇...
  3. php删除文件指令,php – Symfony cache:清除命令更改文件夹所有者
  4. CodeSign error: code signing is required for product type Application in SDK iOS
  5. 单词九连猜python编程_python实现猜单词游戏
  6. 99行不用指针 c语言贪食蛇,关于C语言指针的问题
  7. ECCV 2020 Spotlight 谷歌论文大盘点
  8. speedbutton用法
  9. 4. Linux 系统目录
  10. 基于Verilog的贪吃蛇小游戏设计(附代码)
  11. 5G协议学习(38.300-物理层)
  12. 5分钟三句代码实现抖音自动下载
  13. lwj_C#_homework get set 属性
  14. LimeSDR新手入门教程(一)
  15. Mac 输入法自动切换,代码编辑器中文状态下使用英文标点
  16. 用python编程一个走迷宫游戏_Python基于分水岭算法解决走迷宫游戏示例
  17. 计算机考试怎么调整字号,WPS文字如何调节字体大小突破字号72的限制实现大小随意调...
  18. 最实用的自用同花顺主力资金暴发进出公式
  19. 容器技术解决了什么问题?有何优缺点?
  20. Elliptic Labs进入奥斯陆证券交易所主板上市名单

热门文章

  1. c#书写规范之---注释
  2. #029 博客换个主题从新开始
  3. HTML !DOCTYPE 标签
  4. egret 开发总结
  5. 【数据结构总结1】-数据结构的自述
  6. 200.Number of Islands
  7. 关于.NET前后台提示框的那点事
  8. Oracle E-Business Suite Maintenance Guide Release 12.2(Patching Utilities)
  9. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(34)-文章发布系统①-简要分析...
  10. 每天工作4小时的程序员---source link http://news.cnblogs.com/n/145071/