Compiling with gcc (cygwin on windows)

跟風遠走 提交于 2019-12-30 02:18:46

问题


I have cygwin on windows through which I run gcc. But after creating .exe files, if I run them on other computers which dont have cygwin, it says cygwin1.dll not found. Is there a way to compile them so that they run on any system?


回答1:


In your case, try to copy cygwin1.dll as well (but it could depend on other DLLs as well) (of course you must comply with Cygwin's license with regards to distributing cygwin1.dll)
In cygwin, you can always check the needed modules using:

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

OR

cygcheck ./a.exe

or for windows in general, use something like this tool: Dependency Walker




回答2:


You need to compile for MinGW (Minimal GNU Win32) mode. You do that by either installing mingw instead of (or in addition to) cygwin, or by passing the --mno-cygwin compiler option to the cygwin gcc.




回答3:


You can try compiling with the command line option -mno-cygwin.




回答4:


See the Cygwin FAQ.




回答5:


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

How do I compile a Win32 executable that doesn't use Cygwin?

The compilers provided by the mingw-gcc, mingw64-i686-gcc, and mingw64-x86_64-gcc packages link against standard Microsoft DLLs instead of Cygwin. This is desirable for native Windows programs that don't need a UNIX emulation layer.

This is not to be confused with 'MinGW' (Minimalist GNU for Windows), which is a completely separate effort.



来源:https://stackoverflow.com/questions/1475684/compiling-with-gcc-cygwin-on-windows

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!