使用gcc编译(cygwin on windows)

hyrbngr7  于 12个月前  发布在  Windows
关注(0)|答案(5)|浏览(136)

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

zaq34kh6

zaq34kh61#

在你的例子中,尝试复制 cygwin1.dll(但它也可能依赖于其他DLL)(当然,你必须遵守Cygwin的license关于分发cygwin1.dll)
在cygwin中,您可以随时使用以下命令检查所需的模块:

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

字符串

cygcheck ./a.exe


或者对于一般的windows,使用类似于这个工具的东西:Dependency Walker

643ylb08

643ylb082#

你需要在MinGW(Minimal GNU Win32)模式下进行编译。你可以通过安装mingw来代替(或附加)cygwin,或者通过将--mno-cygwin编译器选项传递给cygwin gcc来完成。

tvz2xvvm

tvz2xvvm3#

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

ao218c7q

ao218c7q4#

请参阅Cygwin FAQ。

wfveoks0

wfveoks05#

来自http://cygwin.com/faq/faq.html#faq.programming.win32-no-cygwin
如何编译不使用Cygwin的Win32可执行文件?
mingw-gcc、mingw 64-i686-gcc和mingw 64-x86_64-gcc软件包提供的编译器链接到标准的Microsoft DLL而不是Cygwin。这对于不需要UNIX仿真层的本机Windows程序是理想的。
不要把它和MinGW(Minimalist GNU for Windows)混淆,MinGW是一个完全独立的工作。

相关问题