有时在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,我该重新托管和重定目标是什么?如果可能的话,我将不胜感激!
我知道这会涉及“交叉编译器”,但更愿意听取专家意见。
提前致谢。
答案 0 :(得分:0)
我现在知道在s / w工程中:
REHOSTING - 如果您的第三方应用程序可链接/可执行文件需要在主机上使用,则会进行重新托管。在这种情况下,目标通常是相同的(OS平台,处理器等)。在最坏的情况下,需要虚拟化。重新托管的应用程序将像在主机中运行的应用程序之一一样运行
RETARGETTING - 如果您有第三方源代码,则可能需要重新编译它以与目标环境匹配。也可能是您拥有第三方.o或.obj编译模型,并且您希望将它们与源代码(重定向)链接,以便在主机上托管它们。就像REHOSTED应用程序一样,它就好像应用程序安装在主机上一样。
最好知道这与编译器重新托管和重定向类似。对不起,我是这个区域的新手,即使手腕上有一记耳光也会感激。