编译器和二进制数据(如.exe或.obj)的“重新托管”和“重定目标”的详细说明

时间:2013-06-20 10:17:29

标签: bootstrapping rehosting

有时在s / w公司中,客户提供多种格式的数据。有可链接和可执行的数据被称为“Rehosted”和被编译的目标文件,据说是“重定向”。我试图了解这个领域的重新托管和重新定位意味着什么。它类似于计算机科学中的Bootstrap理论吗?我对以下过程有了解(如果不是不正确的话):

问题:

I need to write a compiler for a new language called "MyLang" to run on PowerPC

解决方案:

1. I need to write a compiler for a language "MyLang-Mini"; a subset of "MyLang" to run on PowerPC. 


2. I need to write a compiler for "MyLang" using "MyLang-Mini" to run on PowerPC.

3. I run the compiler obtained from no. 1 through the compiler obtained from no. 2 to  
   obtain the compiler for MyLang to run on PowerPC.

在BESPOKE“T”图中(...... ISH):

MyLang      PowerPC                                MyLang              PowerPC
      MyLangMini      MyLangMini           PowerPC       PowerPC(instr.) 
                             PowerPC(instr.)

我感到困惑的是重新托管和重新定位。他们如何与这个概念联系起来?如果我有一些二进制数据,如.exe或.obj,我该重新托管和重定目标是什么?如果可能的话,我将不胜感激!

我知道这会涉及“交叉编译器”,但更愿意听取专家意见。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我现在知道在s / w工程中:

REHOSTING - 如果您的第三方应用程序可链接/可执行文件需要在主机上使用,则会进行重新托管。在这种情况下,目标通常是相同的(OS平台,处理器等)。在最坏的情况下,需要虚拟化。重新托管的应用程序将像在主机中运行的应用程序之一一样运行

RETARGETTING - 如果您有第三方源代码,则可能需要重新编译它以与目标环境匹配。也可能是您拥有第三方.o或.obj编译模型,并且您希望将它们与源代码(重定向)链接,以便在主机上托管它们。就像REHOSTED应用程序一样,它就好像应用程序安装在主机上一样。

最好知道这与编译器重新托管和重定向类似。对不起,我是这个区域的新手,即使手腕上有一记耳光也会感激。