使用 gcc 编译(Windows 上的 cygwin)

发布于 2024-08-05 23:31:23 字数 114 浏览 2 评论 0原文

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

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

愚人国度 2024-08-12 23:31:23

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

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

或者

cygcheck ./a.exe

对于一般 Windows,使用类似以下工具: Dependency Walker< /a>

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

走野 2024-08-12 23:31:23

您需要针对 MinGW(最小 GNU Win32)模式进行编译。您可以通过安装 mingw 来代替(或除了)cygwin,或者通过传递 --mno-cygwin 来实现这一点cygwin gcc 的编译器选项。

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.

影子是时光的心 2024-08-12 23:31:23

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

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

后知后觉 2024-08-12 23:31:23

来自 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)混淆,后者是一项完全独立的工作。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文