我想让我的C++项目跨平台,我正在考虑使用Cygwin/MinGW.但它们之间有什么区别?
另一个问题是我是否能够在没有Cygwin/MinGW的系统上运行二进制文件?
根据下面的 identify-compilers.sh 脚本的输出,似乎在 Cygwin 上可以使用以下 C 编译器。那些标记为“Cygwin”的需要 cygwin1.dll 文件可用。
“pc”和“w64”编译器有什么区别?
为什么没有 x86_64-pc-mingw-gcc.exe executabe?
是否有其他可用的 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
Run Code Online (Sandbox Code Playgroud)