取决于经验和进度要求
有经验的、前期不是很赶进度的,可以从一开始就考虑可移植的写法、用可移植的库,后面基本上不费什么事。
反之就是先用特定于某个OS的库/API先莽一个出来再说,再考虑后面的移植需求
还有个话语权问题,就是话事的人支不支持从一开始就考虑代码和库的跨平台问题(还扯不到架构上去)。
我这个就是我去给别人打工,适配别人(linux/macos),那就要听别人的。
而且话事的人自己也有经验问题,也要考虑项目进度。
所以跨平台用一套代码,通常是在后期重构时来满足。有的产品或者项目可能都活不到这个阶段。
现在是我自己决定用Rust搞跨平台,我就封一套统一的,给Rust用
C++的跨平台主要就是data type、char encoding、file i/o、特定的OS API,这4个里面,前三个现在也都比较容易了。
data type:用定宽的uint8_t/uint16_t那一套
char encoding:用libiconv、ICU
file i/o:用std::filesystem、iostream、POSIX file api,实在满足不了要求就自己wrap一下OS file/filemapping API。
网络:早就有了
IPC:我这个不涉及
【 在 tgfbeta 的大作中提到: 】
: C++的移植相对好整吧
--
修改:z16166 FROM 61.51.229.*
FROM 61.51.229.*