博客
关于我
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/

你可能感兴趣的文章
java.security.InvalidKeyException: Illegal key size
查看>>
Linux kernel pwn --- CSAW2015 StringIPC
查看>>
2020 05 02 记录思考
查看>>
2020-05-31 py执行时超时控制
查看>>
一段强大的shellcode
查看>>
双链表相加问题
查看>>
GB2312-80 汉字机内码
查看>>
n的a进制数
查看>>
配置jdk的环境变量
查看>>
echo命令的颜色及同行显示控制
查看>>
CentOS7利用Systemd添加用户自定义系统服务
查看>>
懒人HTML5笔记-1
查看>>
两台服务器http方式共享yum软件仓库
查看>>
团队背包(team)
查看>>
spring tx:advice 和 aop:config 配置事务
查看>>
修改layui的后台模板的左侧导航栏可以伸缩
查看>>
ThreadLocal源码分析解密
查看>>
编译android源代码(aosp)
查看>>
Java流程控制语句
查看>>
wincc实现手机APP远程监控
查看>>