用gcc编译(windows上的cygwin)

avd*_*avd 7 gcc cygwin

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

Mar*_*wis 11

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

  • 然后,您将不得不向您的用户提供cygwin1.dll.Windows本身不提供fork()系统调用.最好将代码重写为不再使用fork. (2认同)

Amr*_*mro 10

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

objdump -p a.exe | grep 'DLL Name'
Run Code Online (Sandbox Code Playgroud)

要么

cygcheck ./a.exe
Run Code Online (Sandbox Code Playgroud)

或者对于Windows,一般使用类似这样的工具:Dependency Walker

  • 使用:"cygcheck ./a.exe" (3认同)