C++项目管理

本文探讨了C++项目管理的关键方面,包括编译和链接的严谨性、多模块代码共建策略、编译和链接速度优化。文章指出,通过确保头文件的正确性和解决三方库的菱形依赖问题,可以提升编译的严谨性。全静态链接可以增强程序的确定性和执行效率,但可能带来链接速度慢和文件大的问题。文章还强调了构建测试和诊断系统的重要性,以确保代码质量和稳定性。
摘要由CSDN通过智能技术生成

 1.编译的严谨性

(1) 头文件的正确性

        C++ 采用"separate compilation"(分离式编译)意思就是说在编译一个 foo.cpp时,唯一的对其他依赖代码的要求就只是看到它们的头文件 (header files),所以,只要每次编译时可以确保 foo.cpp和它 include的所有header files都是一致的就可以了。但是,我们目前并没有做到这一点,因为,

  • 一个员工不同时候的编译
  • 不同员工的编译
  • 不同机器上的编译

       在以上的各种情况下,这些 header文件有可能不同或被其他人更改而无法察觉:

  • linux headers
  • glibc headers
  • gcc headers
  • 三方库 headers

       alicpp 意在解决这个问题,因为在 alicpp环境下编译时,所有以上文件,甚至包括编译器本身,都是 alicpp gitrepo里的文件,并且这些文件是只读的(永远不会更改内容)。

(2) 三方库的菱形依赖问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大王算法

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值