我从事 C 嵌入式开发。
我读到,在分布式系统中,您应该对不同节点使用相同的编程语言,或者准备好协调传输数据中的不同数据类型。
对于不同的设备使用不同的工具链是否有这样的警告信号?如果是这样,工具链的哪些部分应该相同?
最佳答案
无论如何,你应该为此做好准备。这不是一个新问题 - 例如,这就是我们在网络上使用 bigendian 数据的原因 - 并且有准备好的工具可以做到这一点,例如 DCE、MPI 或 CORBA。
即使双方使用相同版本的 GCC,它也不会消除架构差异,例如字节顺序、可用数据大小(long 可能是 64 位,int 可能是 16 位 - 对于固定大小,请使用 stdint.h )等等。使用不同的工具链通常并不重要,因为无论哪种方式都存在上述平台和 ABI 差异。
也就是说,当您为多个平台编译程序时,您可能会遇到诸如标准合规性和想要匹配的新功能之类的问题,而获得相同的工具链是实现它的简单方法。这首先是 GNU 背后的驱动力之一,因为非自由供应商有时不仅跟不上,当他们跟上时,他们还想要钱。通常以强制您更换机器的形式出现。
关于c - 开发分布式系统时,GCC 工具链的哪些元素应该相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8455422/