博客
关于我
c++ hpp使用好处
阅读量:592 次
发布时间:2019-03-12

本文共 467 字,大约阅读时间需要 1 分钟。

在Linux程序开发中,静态库和动态库的使用有着明显的区别,特别是在代码编译和链接流程中的处理方式不同。以下几点值得关注:

静态库(Static Library)和动态库(Dynamic Library)在程序编译时的处理方式有着本质区别。当代码作为第三方工具包被其他程序调用时,使用静态库(比如兵使用hpp 模式)具有优势:无需进行编译生成.so或.a文件即可进行链接。而使用C和C++的传统方式需要编译生成.o文件后再进行链接操作。

在文件包含方面,当xx2.cpp中包含xx1.cpp文件时,会出现文件重定义的问题。具体情况是:当xx2.cpp包含xx1.cpp,编译完成后,会在两个目标文件(xx1.obj和xx2.obj)中都找到xx1.cpp中的函数定义。这种情况会导致重定义错误。

在类似情况下,如果将xx1.cpp改名为xx1.h进行重编译后,仍会出现重名错误。这是因为编译工具在第一次编译时已将xx1.cpp中的函数定义编译到了目标文件中。为了突破这种限制,可以通过在第二次编译时更换文件名或其他方式实现代码的互斥。

转载地址:http://judxz.baihongyu.com/

你可能感兴趣的文章
《设计模式》- GoF
查看>>
职责链模式在开源代码中的应用
查看>>
Mapper 接口方法如何与注解里的 SQL 进行绑定的?
查看>>
final 在 java 中的作用
查看>>
Unity-PlasticSCM usage
查看>>
python安装和配置(win10)
查看>>
光猫,路由器,机顶盒
查看>>
智力扣(13)——回字环
查看>>
重构函数(1)条件合并
查看>>
ACM总结——库函数(2)C标准库stdlib
查看>>
2020编码大赛(1)题目
查看>>
Brainfuck语言 未定义行为
查看>>
BitChanger语言
查看>>
Pythagorea(3)第16-21章
查看>>
纪念碑谷(1-5章)
查看>>
纪念碑谷2(1-7章)
查看>>
基数树(radix tree)
查看>>
HDU 2586 How far away?(LCA使用详解)
查看>>
放硬币问题的解空间结构
查看>>
58Q游戏(4)73(5)85(6)98(7)
查看>>