我在Windows上使用Cygwin运行gcc。但是,在创建完.exe文件后,如果我在其他没有安装Cygwin的计算机上运行它们,会提示找不到cygwin1.dll。是否有一种方法可以编译它们使其在任何系统上运行?
您需要为MinGW(Minimal GNU Win32)模式编译。您可以通过安装mingw而不是(或除此之外)cygwin,或者通过向cygwin gcc传递--mno-cygwin编译器选项来实现。
在您的情况下,请尝试复制cygwin1.dll(但这可能取决于其他DLL),当然,您必须遵守Cygwin有关分发cygwin1.dll的许可证条款
在Cygwin中,您始终可以使用以下命令检查所需的模块:
objdump -p a.exe | grep 'DLL Name'
或者
cygcheck ./a.exe
或者对于Windows平台,可以使用类似于这种工具:Dependency Walker
-mno-cygwin
进行编译。来自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)不应混淆,后者是完全独立的努力。