【问题标题】:What is a native build environment?什么是原生构建环境?
【发布时间】:2013-03-25 04:34:09
【问题描述】:

我只是从互联网上阅读信息,目前是cmake about page,我需要这些信息来填补空白,这有助于看到大局。

我希望答案很简单。什么是原生构建环境?

上下文:我需要知道如何在我的机器上构建软件(CodeBlocks 等)、为什么需要这样做、这样做的好处等。但首先,我需要我知道我遇到的每一个行话,我找不到任何关于“原生构建环境”到底是什么的解释,尽管我可以在某种程度上推测。

【问题讨论】:

    标签: cmake


    【解决方案1】:

    "Native" 如“直接在主机操作系统中运行”而不是“在虚拟机或模拟器中运行”。

    CMake 的关于页面试图传达的具体点是 CMake 实现跨平台功能的方式:具体而言,不是通过虚拟化,而是通过直接与主机系统合作/协作,以及主机系统习惯于做事的“正常”方式。

    那么构建环境是否只是包含编译器构建软件所需的所有垃圾的目录?

    这过于简单化了——没有什么可以说它是一个单一的目录——但或多或少,是的。该术语不是行话,它的字面意思是构建所需的“世界状态”(又名环境)。

    那你会怎么称呼其他东西,非本地人?

    当然,或虚拟化,或模拟,或添加任何其他中间层。

    为什么我们也需要区分?

    为什么不呢?有一个简洁、清晰、简单的术语是很有用的,这样我们就可以准确地交流,尽量减少混淆和歧义。

    【讨论】:

    • 好的,这有帮助。那么构建环境是否只是包含编译器构建软件所需的所有垃圾的目录?在这一点上做出这样的假设似乎很明显。那你会怎么称呼另一件事,非本地人?为什么我们也需要区分?
    【解决方案2】:

    为什么是“非本地”?如果您还没有弄清楚这一点 - 有一种叫做交叉编译的东西。

    简单地说,如果我无法访问需要在其上运行软件的目标硬件(或等效的虚拟机),我如何在我的主机上开发此软件并将其打包以在该目标上运行?

    交叉编译通过提供执行翻译(或其他重要的低级内容)的必要工具来解决这个问题,从而为您提供最终软件。这种开发软件的环境称为非原生环境。

    嗯,我相信我们需要这个词来说明技术。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-23
      • 1970-01-01
      • 2018-10-20
      • 2011-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多