【问题标题】:Run cpp file without compiling在不编译的情况下运行 cpp 文件
【发布时间】:2022-01-21 00:57:39
【问题描述】:

如何直接运行存在于只读存储(如 CD 驱动器)中的 c++ 文件,而不使用 g++ 创建可执行文件?必须有一些论据才能起作用。

【问题讨论】:

  • 你可以创建一个脚本来编译,运行,然后删除二进制文件来获得这个流程吗?否则,我认为您要寻找的东西是不可能的。这样做有什么理由吗?
  • 为了运行一个 C++ 程序,你需要一个 C++ 实现。这是给定的。 g++ 是一种 C++ 实现。它通过制作可执行文件来工作。还有其他几个主流实现都以相同的方式工作。您可能想问自己,无需生成可执行文件的实现是否确实是一项硬性要求。也许这是您对完全不同的真实需求的解释?一旦您确定这确实是一项要求,您就可以开始寻找 C++ 解释器(这些都不是主流)。

标签: gcc g++ mingw-w64


【解决方案1】:

一个C/C++程序从你制作到运行的过程:

  1. 您编写程序的源代码。

  2. 编译器进入这里并将源代码编译为目标文件。 注意:请记住,此阶段无法执行程序。它只是一个目标文件。如果您从事过更大的程序,您就会知道这一点,但如果您不了解它是如何工作的。还记得在你的程序中使用那些头文件吗?这些头文件只是告诉编译器有些东西没有在你的程序中定义。他们在别的地方。因此,您的编译会将程序编译为目标文件,而忽略具有原型的内容(位于头文件中)。

  3. 这是非常重要的一点。在这里,一个名为“链接器”的程序开始发挥作用。链接器所做的是将编译器创建的所有目标文件合并为一个。例如,您的编译器创建了一个目标文件。现在,您正在使用数学库或标准库中的任何内容。编译器-链接器包(通常称为编译器)带有这些标准库定义的目标文件。因此,链接器获取您的目标文件并将其与包中的其他目标文件组合,然后将其转换为可执行文件。这是您可以运行的文件。没有其他东西可以直接运行。

要运行源代码,过程已经解释过了,我们必须使用 g++。现在

我从您的问题中了解到的是,您想知道程序在正确编译和链接后是否可以运行(因此生成了可执行文件)。答案是肯定的。

另外,听起来可能很奇怪,我知道有一个名为 Cling 的解释器可以用来绕过 C++ 程序的编译。 毕竟 C++ 通常被视为一种编译语言。但是,任何编程语言都可以实现为编译器或解释器,而 Cling 恰好是基于 LLVM 和 Clang 的交互式 C++ 解释器。 仔细看看this

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    相关资源
    最近更新 更多