【发布时间】:2010-04-22 00:29:28
【问题描述】:
我正在编写一个 Linux 程序,该程序目前可以在 x86 和 x86_64 上正常编译和运行,现在我想知道是否需要做一些特别的事情才能让它在其他架构上运行。
我听说对于跨平台代码我应该:
- 不要假设指针、int 或 size_t 的大小
- 不要对字节顺序做出假设(我不做任何位移 - 我假设 gcc 会优化我的两个乘法/除法的能力)
- 不要使用组装块(很明显)
- 确保您的库正常工作(我使用的是 SQLite、libcurl 和 Boost,它们看起来都非常跨平台)
还有什么我需要担心的吗?我目前没有针对任何其他架构,但我希望在某个时候支持 ARM,我想如果可以的话,我不妨让它在任何架构上工作。
另外,关于我关于字节顺序的第二点,我需要对文本输入做一些特别的事情吗?我用getline() 读取文件,所以似乎也应该自动完成。
【问题讨论】:
标签: c++ linux gcc cross-platform arm