【问题标题】:How do I create a .exe from a .cpp file in Code Blocks?如何从代码块中的 .cpp 文件创建 .exe?
【发布时间】:2011-12-09 18:37:44
【问题描述】:

我刚刚开始学习 C++,并显示我找到的代码的输出 this method。这在我第一次编译 Programme.cpp 的结构时起作用:

#include <iostream>

using namespace std;

int main ()
{
    cout << "Hello World!";
    return 0;
}

它给了我一个 .exe,我打开并运行它,得到了一个可爱的“Hello World!”出现,但是当我尝试编译第二个时,Variables.cpp:

#include <iostream>
using namespace std;

int main ()
{
    int a, b;
    int result;

    a=5;
    b=2;
    a=a+1;
    result=a-b;

    cout << result;

    return 0;
}

我根本没有 .exe,所以不知道如何打开它。我尝试重新编译 Programme.cpp 的结构(在删除所有相关文件之后),但现在也不会再创建 .exe 了。创建的唯一文件是 Programme.o 和 Variables.o 的结构(在子目录 obj\Debug 中)。

我能找到的唯一一个看起来相似的问题是this,但问题似乎略有不同,我尝试删除其中一个文件(因此只有一个 Programme.cpp 或 Variables 的结构。 cpp 在文件夹中),我仍然得到相同的结果。

此外,这两个文件都没有编译器错误,我认为我没有更改代码块中的任何选项之间的程序结构工作和一切不工作。

谢谢,

达尔基乌斯

编辑:构建日志:

Compiling: Structure of a Programme.cpp
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 0 warnings

Compiling: Variables.cpp
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 0 warnings

编辑 2:“完整命令行”构建日志:

Build started on: 14-12-2011 at 07:57.39
Build ended on: 14-12-2011 at 08:01.03
-------------- Clean: Debug in cplusplus.com Tutorial ---------------
Done. 
mingw32-g++.exe -Wall -g -c "D:\My Documents\0HOME\Programming\C++\Code Blocks\cplusplus.com Tutorial\Structure of a Programme.cpp" -o "obj\Debug\Structure of a Programme.o"
Process terminated with status 0 (0 minutes, 1 seconds)
0 errors, 0 warnings
mingw32-g++.exe -Wall -g -c "D:\My Documents\0HOME\Programming\C++\Code Blocks\cplusplus.com Tutorial\Variables.cpp" -o obj\Debug\Variables.o
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 0 warnings

【问题讨论】:

  • 帮助我们通过复制和粘贴您遇到此问题的构建日志来帮助您。
  • 你能打开完整的编译器日志吗?您可以在Settings-&gt;Compiler/Debug-&gt;Other settings tab 下找到它。确保编译器日志记录设置为“完整命令行”。然后在您进行重建后使用构建日志中显示的完整命令行更新您的问题。
  • @Victor T. 我在选项更改后添加了构建日志。它对我来说并没有太大的不同,但我已经检查了我看到的关于命令行的所有选项(将构建日志保存到 HTML -> 始终在生成的 HTML 中输出完整的命令行)。

标签: c++ codeblocks


【解决方案1】:

通过查看更新的构建日志,似乎没有执行链接步骤来生成最终的可执行文件。您可以检查几件事并尝试一些想法:

  • 确保已设置链接器可执行文件和正确的路径,以便 C::B 可以找到它。对于 MinGW,链接器通过名为“g++.exe”的编译器驱动程序调用。
  • 检查是否在“类型”下选择了“控制台应用程序”。
  • 如果一切正常,但仍无法链接,请尝试创建一个新的空白控制台项目。将现有文件添加到该项目并尝试构建它。
  • 尝试从“cmd”命令提示符手动构建它,以确保工具链本身正常运行。您应该在您的 mingw 安装下找到一个“mingwvars.bat”脚本。运行该脚本以打开适当的命令行环境。使用以下命令进行简单的测试编译:

cd "D:\My Documents\0HOME\Programming\C++\Code Blocks\cplusplus.com 教程"
g++.exe -Wall -g Variables.cpp -o Variables.exe

最后,这是您的日志在正确构建时的大致样子:

【讨论】:

  • 谢谢,我已经搞定了。不要认为我完全确定如何,但感谢您的帮助。
  • @Dalkius 如果它对你有用,你可以接受这个作为答案。
【解决方案2】:

EXE 文件大多是在您每次运行代码时构建的。尝试找到您安装或复制 C++ 程序文件的程序的 exe 文件。

【讨论】:

    【解决方案3】:

    我对代码块不太熟悉,但我会尝试通过解释编译器在做什么来提供帮助。它创建的那些 .o 文件称为对象文件。高层次的编译工作如下:

    1) 您的源代码由编译器编译。

    2) 编译器将解释您的代码并为您拥有的每个文件创建一个对象(或 .o 文件)(通常无论如何)。

    3) 这些文件随后在称为“链接器”的编译过程的一部分中“链接”在一起。

    4) 最后,链接器会输出您的 .exe 文件。

    当然还有更多内容(例如库文件、预编译的 dll、预处理等),但出于您的目的,您可以在刚开始时像上面那样考虑它。

    我的猜测是您可能不小心使用代码块链接器修改了某些内容,或者它正在寻找错误的位置来链接文件 - 或者甚至链接器正在抛出错误(尽管大多数 IDE 会通知您这一点)。同样,不幸的是我对代码块不太熟悉。

    如果代码块中有任何方法可以触发“清理”,您也应该尝试并尝试重建。这将删除(清理)上次构建时可能仍然存在的任何旧文件。

    【讨论】:

    • 我已经尝试过清洁,但没有任何改变。我还在构建选项下找到了一些关于链接器的东西,但是我不知道该怎么做,而且我很擅长不理会这类事情。
    【解决方案4】:

    构建程序后,在构建日志中,您可以看到“正在执行:”,您可以在其中找到程序刚刚创建的 .exe 文件的路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-15
      • 2017-01-08
      • 1970-01-01
      • 2012-03-29
      • 1970-01-01
      相关资源
      最近更新 更多