我试图以比所有“编译器(正在做什么)?”更为详尽的方式来理解整个“编译”主题。在那里的文章。
对我来说,一个大问题是直接编译为机器代码(例如C)时对处理器和操作系统平台的依赖性。我尝试提出一些需要解决的具体问题,以使我的照片更清晰:
我在Linux发行版上通过gcc编译了我的C代码...:
最后,我的问题针对:针对特定操作系统平台,处理器平台或两者的编译?
谢谢!
答案 0 :(得分:0)
编译目标 ,OS和体系结构。
需要确定操作系统的目标,因为:
必须以CPU体系结构为目标,因为即使在不同版本的“相同体系结构” 中,CPU指令也不同。
- 我可以在任何其他Linux发行版上运行生成的可执行文件吗?
通常为是,但是在特定情况下,它可能取决于程序的类型(例如GUI)和假定在OS上可用的服务。
- 该可执行文件是否绑定了在其上编译的处理器平台?我是否需要搜索另一个当我运行x86发行版时,如何使用power-pc gcc?
我不明白您所说的“搜索” 是什么意思,但是,是,您可以交叉编译,例如x86定位到PPC。
- 我可以以某种方式在Windows上执行此操作吗?我知道可执行文件有所不同,但二进制代码是相同的,不是吗?
如今,Windows具有Ubuntu集成,并且允许某些例外,但由于上述原因,通常的回答是否。