用gcc编译(windows上的cygwin)

时间:2009-09-25 06:12:57

标签: gcc cygwin

我在运行gcc的窗口上有cygwin。但是在创建.exe文件之后,如果我在没有cygwin的其他计算机上运行它们,它会说找不到cygwin1.dll。有没有办法编译它们以便它们可以在任何系统上运行?

5 个答案:

答案 0 :(得分:11)

您需要编译MinGW(Minimal GNU Win32)模式。你可以通过安装mingw而不是(或者除了)cygwin,或者将--mno-cygwin编译器选项传递给cygwin gcc来实现。

答案 1 :(得分:10)

在您的情况下,尝试复制 cygwin1.dll (但它也可能依赖于其他DLL)(当然,您必须遵守Cygwin的license关于分发cygwin1.dll)
在cygwin中,您始终可以使用以下方法检查所需的模块:

objdump -p a.exe | grep 'DLL Name'

OR

cygcheck ./a.exe

或者对于一般的Windows,请使用类似此工具的内容:Dependency Walker

答案 2 :(得分:4)

您可以尝试使用命令行选项-mno-cygwin进行编译。

答案 3 :(得分:1)

请参阅Cygwin FAQ

答案 4 :(得分:0)

来自http://cygwin.com/faq/faq.html#faq.programming.win32-no-cygwin

如何编译不使用Cygwin的Win32可执行文件?

mingw-gcc,mingw64-i686-gcc和mingw64-x86_64-gcc软件包提供的编译器链接标准Microsoft DLL而不是Cygwin。这对于不需要UNIX仿真层的本机Windows程序来说是理想的。

这不要与'MinGW'(Windows的Minimalist GNU)相混淆,这是一个完全独立的工作。