CC++裸机编译和特定 *** 作系统(Linux)编译之间有什么区别?

CC++裸机编译和特定 *** 作系统(Linux)编译之间有什么区别?,第1张

概述假设您有一个交叉编译工具链,它为ARM体系结构生成二进制文件.您的工具链是这样的(在使用Linux的X86_64机器上运行):> arm-linux-gnueabi-gcc.exe:用于Linux的交叉编译,在ARM上运行.> arm-gcc.exe:用于针对ARM的裸机交叉编译....以及用于ARM交叉编译的大量其他工具.我感兴趣的点是:&gt

假设您有一个交叉编译工具链,它为ARM体系结构生成二进制文件.

您的工具链是这样的(在使用Linux的X86_64机器上运行):

> arm-linux-gnueabi-gcc.exe:用于linux的交叉编译,在ARM上运行.
> arm-gcc.exe:用于针对ARM的裸机交叉编译.

…以及用于ARM交叉编译的大量其他工具.

我感兴趣的点是:

>(E)二进制文件之间的ABI差异(如果有的话)
>裸机的限制(如动态内存分配,在C情况下使用静态构造函数,线程模型等)
>根据每个案例的具体信息(如调试信息支持等),2个案例之间的二进制级差异;最佳答案> ABI的差异取决于你如何调用编译器,例如GCC有-mabi,它可以是’apcs-gnu’,’atpcs’,’aapcs’,’aapcs-linux’和’iwmmxt’之一.
>存在各种运行时功能的裸机限制,因为有人没有提供它们.是他们初始化零分配区域或提供C功能.如果你能提供它们,它们就会起作用.
>二进制级别差异也取决于您如何调用编译器.

你可以查看GCC ARM options online. 总结

以上是内存溢出为你收集整理的C/C++裸机编译和特定 *** 作系统(Linux)编译之间有什么区别?全部内容,希望文章能够帮你解决C/C++裸机编译和特定 *** 作系统(Linux)编译之间有什么区别?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1050167.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存