我在运行gcc的窗口上有cygwin。但是在创建.exe文件之后,如果我在没有cygwin的其他计算机上运行它们,它会说找不到cygwin1.dll。有没有办法编译它们以便它们可以在任何系统上运行?
答案 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)相混淆,这是一个完全独立的工作。