【问题标题】:Codeblocks compilation not executable代码块编译不可执行
【发布时间】:2014-11-28 10:54:56
【问题描述】:

我正在尝试使用 Codebloks Nightly svn 9916 编译以下代码

#include "Main.h"
#include <iostream>

using namespace std;

int main() {

    cout << "Hello World!" << endl;
    return 0;
}

从 Codeblocks 内部运行可执行文件,它会按预期返回 Hello World!。但是如果从外部启动可执行文件,它会返回应用程序错误0xc000007b。这意味着系统类型(32 位或 64 位)不适合,或者可执行文件已损坏。但我不明白为什么在从 Codeblocks 执行时编译很好。 可执行文件本身是 32 位 (x86),从 32 位或 64 位 cmd 运行它不会产生任何变化。

数据: Windows 7 专业版 64 位 GNU GCC 编译器

编辑:解决方法

将 c++ 库与可执行文件静态链接。如果 c++ 标准库不可用,windows 似乎无法执行。

【问题讨论】:

  • 您可能需要在您的路径或可执行文件所在目录中的一个或多个 gcc dll 文件。 Dependency Walker 有助于查看缺少的内容。
  • Main.h 只是一个空白的自动生成的标题
  • @Matze:找到解决方案后,将其发布为答案。

标签: c++ c windows codeblocks


【解决方案1】:

静态链接 C++ 默认库有效。

只需将-static-libstdc++ 添加到您的链接声明中

【讨论】:

    【解决方案2】:

    我建议从 statch 重新设置您的编译器,看看是否是导致问题的原因,我建议您观看this video,它几乎描述了如何从第 1 步开始。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-28
      • 1970-01-01
      • 1970-01-01
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      相关资源
      最近更新 更多