Cygwin上的C编译器生成了什么?

时间:2014-12-07 16:02:35

标签: gcc cygwin mingw

根据下面的identify-compilers.sh脚本的输出,似乎Cygwin上有以下C编译器。标有" Cygwin"要求cygwin1.dll文件可用。

" pc"有什么区别?和" w64"编译器?

为什么没有x86_64-pc-mingw-gcc.exe可执行文件?

是否有其他C编译器可用?

/usr/bin/gcc.exe                        64-bit  Cygwin
/usr/bin/i686-pc-cygwin-gcc.exe         32-bit  Cygwin
/usr/bin/i686-pc-mingw32-gcc.exe        32-bit
/usr/bin/i686-w64-mingw32-gcc.exe       32-bit
/usr/bin/x86_64-pc-cygwin-gcc.exe       64-bit  Cygwin
/usr/bin/x86_64-w64-mingw32-gcc.exe     64-bit

$ cat identify-compilers.sh
#!/bin/bash
for c in $(ls -1 /usr/bin/*gcc.exe); do
    echo === compiler: $c
    $c -o hello.exe hello.c
    objdump -p hello.exe | grep -i "cygwin"
    objdump -p hello.exe | grep -i "64$"
    rm hello.exe
done

1 个答案:

答案 0 :(得分:3)

  1. gcc只是x86_64-pc-cygwin-gcc

  2. 的硬链接
  3. x86_64-pc-cygwin-gcci686-pc-cygwin-gcc正如您所说的那样 Cygwin编译器,也就是说创建依赖程序的编译器 在cygwin1.dll

  4. x86_64-w64-mingw32-gcci686-w64-mingw32-gcc是提供的编译器 通过Mingw-w64 project

  5. i686-pc-mingw32-gcc是由MinGW project提供的编译器

  6. 你可能想知道,为什么两个Mingw项目?那么Mingw-w64项目是 因为MinGW refused to adopt启动了64位编译器。在此之间 和MSYS2 project的开始,我考虑MinGW项目 过时。