【问题标题】:How to configure gcc in cygwin?如何在cygwin中配置gcc?
【发布时间】:2014-11-03 02:38:54
【问题描述】:

我用 gcc 4.8.3 安装了 cygwin(编译 c++)。一切都很好,直到我决定构建一个 32 位可执行文件:当我编译代码 #include <cstdlib> 时出现编译错误(如果我使用 stdlib.h 而不是 cstdlib,则不会出现该错误)。

经过一番挖掘,我找到了以下文件:

/usr/lib/gcc/x86_64-pc-cygwin/4.8.3/include/c++/x86_64-pc-cygwin/bits/c++config.h

在那个文件中,我有:

/* Define if __int128 is supported on this host. */
#define _GLIBCXX_USE_INT128 1

如果我删除这段代码,编译错误就会消失。

这是调整我的 gcc 配置的正确方法吗? (我几乎可以肯定不是)

如果没有,我该怎么办?


作为参考,这里是我说的编译错误:

$ echo '#include ' | g++ -c -m32 -x c++ - 在 :1:0 包含的文件中: /usr/lib/gcc/x86_64-pc-cygwin/4.8.3/include/c++/cstdlib:178:10:错误:'__int128'之前的预期不合格ID 内联 __int128 ^

【问题讨论】:

  • 在能够处理多个 ABI 的安装中,有几个文件 c++config.h。如果您的版本只有一个,那么它并不意味着处理 -m32 并且您需要安装其他东西。
  • 我刚刚也遇到了与-m32 选项类似的情况。一定会喜欢它...您甚至无法报告错误,因为他们似乎没有错误跟踪器:Cygwin bug tracking is non-existent。这个错误可能会持续很长时间......
  • Cygwin 有一个报告问题和获得帮助的程序。如果你认为你看到了一个错误,那么在那里询问它会很聪明......cygwin.com/problems.html

标签: c++ gcc configuration cygwin


【解决方案1】:

one of GCC mirror sites 下载压缩包。并按照安装说明进行操作。这非常简单,刚刚再次为 4.9.1 做了。

对于您的问题,您是否使用 32 位机器?无需破解源代码。您是否正确运行./configure?你的机器支持128位int吗? 可能有一个./configure 的参数来说明是或否。

【讨论】:

  • x86_64上使用g++-m32选项时存在问题。
猜你喜欢
  • 1970-01-01
  • 2012-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-19
  • 1970-01-01
  • 2021-12-17
  • 2015-03-30
相关资源
最近更新 更多