【问题标题】:Cygwin compiling error: "this application has requested the runtime to terminate it in an unusual way"Cygwin 编译错误:“此应用程序已请求运行时以不寻常的方式终止它”
【发布时间】:2010-01-27 23:48:08
【问题描述】:

我正在尝试运行 Cygwin,但遇到了一些问题。我试图编译一个程序,它既可以在带有 mingw 的 Windows 上也可以在 Unix 系统上运行,但是当我通过 Cygwin 编译它时:

gcc threads.c -o threads

我得到错误: 此应用程序已请求运行时以不寻常的方式终止它

就是这样...有什么我忘记或搞砸的想法吗?我已经有 5 年没碰过这些东西了,所以我已经生锈了;谢谢!

【问题讨论】:

  • 您能否向我们的 SO'ers 显示代码以了解您收到错误消息的原因? :)
  • 我知道你在那里做了什么:P 无论如何 - 是什么产生了错误?海合会?或者当你运行“线程”时?从您提出问题的方式来看,听起来 gcc 编译步骤是什么问题,而不是您的程序。在这种情况下,听起来 cygwin 可能没有正确安装。

标签: c windows gcc compiler-construction cygwin


【解决方案1】:

在我的情况下,这个问题是由于我没有在 cygwin 中定义的 TEMP 环境变量,尝试:

export TEMP=/tmp

如果已经定义了 TEMP,请确保该目录不是只读的。

【讨论】:

  • 就我而言,定义 TEMP 也解决了这个问题
  • 在 ~/.bashrc 中有一个说明。我使用“export TMPDIR=/tmp”
【解决方案2】:

错误消息表示编译器在尝试构建程序时崩溃。

这很可能意味着您的 Cygwin 安装已损坏或恰好包含损坏的 gcc 版本。尝试更新到当前版本的 Cygwin。鉴于 Cygwin 1.7 和 GCC 4 的第一个稳定版本都是最近发生的事情,情况就更是如此了。如果您仍在使用 Cygwin 1.5 或 GCC 3.x,我认为升级很有可能会解决您的问题。

【讨论】:

    【解决方案3】:

    假设你正在编译threads.c,我会收集它与线程有关,你试过这个吗...

    gcc -L libthreads -o 线程threads.c

    这是告诉gcc 编译器包含库线程并将其链接在一起。

    或者...您可以将开关包含在上述命令行-mno-cygwin 中,如果您 不需要类似 unix 的行为。

    希望这会有所帮助, 最好的祝福, 汤姆。

    【讨论】:

    • 不,-L 不给 gcc 一个库的名称来链接到你的程序。它将以下参数添加到它查找此类库的目录列表中。你的意思是-lpthread。但这并不能解释编译器崩溃的原因。
    猜你喜欢
    • 2011-07-20
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 2021-05-28
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    相关资源
    最近更新 更多