关于c++跨平台开发的几点思考

本文探讨了C++跨平台开发的重要性和实际应用场景,介绍了如何通过C++标准库、宏控制、CMake工具及第三方库(如Boost和Qt)来解决不同平台间的差异问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么要做C++跨平台开发

从我参与的两个项目看,一般都是要求底层库可以跨平台。UI上层可以采用现有的跨平台UI框架,也可以使用平台独有的UI框架(为了更好的使用平台特性)

c++底层库封装了大量的io操作,或者是产品开发所需要调用的相关API。这样可以更好的复用code,降低跨平台开发的成本。

而且可以很好地控制核心API的开发和维护,由单独的一个team来完成,从而更好的控制风险和质量。

如何跨平台

一般来说,我们都会使用C++ std library,这是国际c++标准委员会制定的。对各个编译器来说应该都是支持的。

但是遇到和一些linux,windows等平台上编译器所特有的一些库,函数,这个时候我们就需要区别对待了。

1. 很多人都是实现的时候通过宏来控制相关的代码段。但是当碰到大量的平台差异时候,代码就非常凌乱,到处都是宏,看了就没胃口了。

2. 为了避免上述问题,我们可以把平台差异实现分开,作为两套实现文件。然后通过预编译宏来控制引用哪一个头文件。这样看上去相对来说清晰很多。

3. 最近在新的项目中,发现了一个跨平台工具cmake.  我们可以在cmake里面来针对相关平台直接引用相关的文件。让宏在生成相关project的时候就起作用。

这样看起来就更清楚了。

4. 可以使用跨平台的lib。如boost,qt. 其本身就是跨平台的。我们用起来就十分方便了。QT不光是写了大量的C++ library,其UI框架也是跨平台的,所以它现在在跨平台UI开发方面应用很多。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值