在 g++ 中使用 -mno-cygwin 标志是否有副作用?
我最近发现,只要使用 -mno-cygwin 标志,我就可以使用 g++ 制作没有外部依赖项的 Windows 可执行文件。 我的印象是编译器使用 MinGW 库而不是 cygwin。
这是使用 cygwin 构建二进制文件而没有 gpl 许可问题的有效方法吗?
除了更大的可执行文件之外,这还有什么技术副作用吗? (即,失去 cygwin 特定的功能、受限的功能)
此功能是否记录在任何地方? 我只能找到几年前描述它的新闻组帖子。
I have recently discovered that I can make windows executables with g++ that have no external dependencies, as long as I use the -mno-cygwin flag. My impression is that the compiler uses MinGW libraries instead of cygwin.
Is this an effective way of using cygwin to build binaries without gpl licensing issues?
Are there any technical side effects of this besides a larger executable? (i.e., loosing cygwin-specific features, restricted functionality)
Is this feature documented anywhere? I can only find newsgroup postings from several years ago describing it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
-mno-cygwin
标志删除了对 Cygwin 的所有依赖,这样您的程序就不会依赖 cygwin1.dll,也不会依赖 Unix 环境。 生成的可执行文件就像是使用 MinGW 工具链而不是 Cygwin 编译的。 标准函数无法识别或理解 Unix 风格的路径或符号链接,因为它们是在 Cygwin 中实现的。我不记得它在哪里,但是 Cygwin 中有一个帮助文档解释了它。
The
-mno-cygwin
flag removes all dependencies on Cygwin so that your program will not rely on cygwin1.dll, nor on the presence of a Unix environment. The resulting executable is as if it had been compiled with the MinGW toolchain rather than Cygwin. Standard functions won't recognize or understand Unix-style paths or symlinks as they are implemented in Cygwin.I can't remember where it is, but there is a help document within Cygwin that explains it.