【问题标题】:What is the correct package name for gcc in cygwin?cygwin 中 gcc 的正确包名是什么?
【发布时间】:2014-07-21 05:08:33
【问题描述】:

我需要在 cygwin 上安装 gcc, 但是当我在 cygwin setup 应用程序中搜索 gcc 时,我得到了几个名称中带有字符串“gcc”的结果,例如:

cygwin32-gcc-ada
cygwin32-gcc-core
cygwin32-gcc-fortran
cygwin32-gcc-g++
cygwin32-gcc-objc++
...
gcc-ada
gcc-core
gcc-fortran
gcc-g++
...
libgcc1
minigw-gcc-core
minigw-gcc-g++
....
minigw64-i686-gcc-core
minigw64-i686-gcc-g++
...

当我在ubuntu的突触中搜索gcc时,我有一个非常明显的结果 我想用这些名字做什么?全部安装? 安装一个随机的,然后创建符号链接到它的二进制文件可能到达 /usr/bin/gcc 的位置?

当我尝试搜索我一直在网上阅读的那个我需要构建不在 cygwin 安装程序上的包的 gcc 时,显示的这么多包名称可以实现什么用途和生产力?

我在任何地方读到“在 cygwin 上安装 gcc,然后继续做这个那个”,他们从来没有提到上面哪个 gcc 包是正确的,

就像世界各地的每个人都已经知道哪个 gcc 是正确的,并且在网上找不到该信息。

感谢您的澄清和进一步的帮助。

编辑: 在过去的某个时候,实际上曾经有一个名为“gcc”的包, 我从这里的截图中发现: http://www.eecg.utoronto.ca/~aamodt/ece242/cygwin.html

我不知道那是多少年前的事了。

【问题讨论】:

  • 这取决于您打算使用什么语言 - 如果您不需要 Ada、Fortran 等,请不要安装它们。

标签: gcc compilation cygwin installation packages


【解决方案1】:

以下内容用于在 64 位 Cygwin 中编译 32 位二进制文​​件:

cygwin32-gcc-ada
cygwin32-gcc-core
cygwin32-gcc-fortran
cygwin32-gcc-g++
cygwin32-gcc-objc++
...

以下是主要的 gcc 部分。如果您不需要某些特定语言,例如 Ada 或 Fortran,请不要安装它们。

gcc-ada
gcc-core
gcc-fortran
...

这是 gcc 所需的库。

libgcc1

mingw(不是 minigw...那些似乎是拼写错误)版本用于在 Cygwin 中编译不依赖于 Cygwin1.dll 的程序。使用这些构建的程序使用 Microsoft C RTL,并且可以安装在没有 Cygwin 的系统上。它们也不受 Cygwin 相当严格的开源许可证的约束。名称不包含 64-i686 的用于生成 32 位二进制文​​件,而包含名称的用于生成 64 位二进制文​​件。

mingw-gcc-core
mingw-gcc-g++
....
mingw64-i686-gcc-core
mingw64-i686-gcc-g++

请注意,您可以在http://cygwin.com/packages 看到所有这些信息。

【讨论】:

  • 但是,一旦我安装了 gcc 安装,我是否需要做一些重要的事情来确保环境知道当在终端中输入“gcc”时,记住特定的 gcc要使用的?另外,如果是这样 - 那么我是否需要为我正在执行的每个独特编译执行此操作?一遍又一遍(假设我 - 而且我不知道如何知道 - 可能会看到我下载的某些源需要 gcc-x 而另一个需要 gcc-y,我将在它们之间切换,其中一个是目前的“MAIN-USED-GCC”)...
  • OP第一条评论的答案是设置CC环境变量,例如export CC=cygwin32-gcc。另一个例子见forums.debian.net/viewtopic.php?f=30&t=110742
  • 我投了赞成票,尽管你对 gcc-core 有点错误。请看我的回答。
【解决方案2】:

使 Cygwin GCC 包令人困惑的事情是:

  • gcc-corecygwinXX-gcc-core 相互混淆(XX 是 32 或 64,具体取决于您的 Cygwin 架构)。
  • MinGWMinGW-w64 都有包,它们是不同的项目,尽管很多人不知道它们的共存(我是)。

截至 2015 年 10 月,Cygwin GCC 包按如下方式分解。

Cygwin x86(32 位)中:

项目:Cygwin GCC(通过链接到 cygwin1.dll 启用 Windows POSIX 的可执行文件) PACKAGE TARGET ARCH MAIN BINARY + LINKS(版本化链接除外) gcc-core x86 /usr/bin/gcc.exe /usr/bin/cc(符号链接) /usr/bin/i686-pc-cygwin-gcc.exe(硬链接) cygwin64-gcc-core x86_64 /usr/bin/x86_64-pc-cygwin-gcc.exe 项目:MinGW(Windows 32 位独立可执行文件) PACKAGE TARGET ARCH MAIN BINARY + LINKS(版本化链接除外) mingw-gcc-core x86 /usr/bin/i686-pc-mingw32-gcc.exe PROJECT MinGW-w64(来自 MinGW 的用于构建 64 位的分支) PACKAGE TARGET ARCH MAIN BINARY + LINKS(版本化链接除外) mingw64-i686-gcc-core x86 /usr/bin/i686-w64-mingw32-gcc.exe mingw64-x86_64-gcc-core x86_64 /usr/bin/x86_64-w64-mingw32-gcc.exe

Cygwin x86_64(64 位)中:

项目:Cygwin GCC(通过链接到 cygwin1.dll 启用 Windows POSIX 的可执行文件) PACKAGE TARGET ARCH MAIN BINARY + LINKS(版本化链接除外) gcc-core x86_64 /usr/bin/gcc.exe /usr/bin/cc(符号链接) /usr/bin/x86_64-pc-cygwin-gcc.exe(硬链接) cygwin32-gcc-core x86 /usr/bin/i686-pc-cygwin-gcc.exe 项目:MinGW(Windows 32 位独立可执行文件) PACKAGE TARGET ARCH MAIN BINARY + LINKS(版本化链接除外) mingw-gcc-core x86 /usr/bin/i686-pc-mingw32-gcc.exe PROJECT MinGW-w64(来自 MinGW 的用于构建 64 位的分支) PACKAGE TARGET ARCH MAIN BINARY + LINKS(版本化链接除外) mingw64-i686-gcc-core x86 /usr/bin/i686-w64-mingw32-gcc.exe mingw64-x86_64-gcc-core x86_64 /usr/bin/x86_64-w64-mingw32-gcc.exe

【讨论】:

  • 很好的答案,但你并没有真正提到差异。
猜你喜欢
  • 2018-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-10
  • 2013-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多