我想用cygwin制作一个独立的exe。我有两个选择:
如果我可以静态链接cygwin1.dll,那么我可以获得一个独立的exe。
如果我可以将 cygwin1.dll 与我的程序合并,我可以获得一个独立的 exe。
不建议我使用 IlMerge。这行不通,因为我没有用 .NET 编译我的程序。
这些选项中的任何一个都可能吗?如果没有,这个困境有什么可能吗?谢谢!
最佳答案
我可以看到您认为合理的两种可能性。一种方法是使用不同的编译器(例如,MinGW——无论如何,这样它不需要 cygwin)构建一个 stub 可执行文件,以将主可执行文件和 cygwin.dll 解压缩到一个临时目录中,然后生成该可执行文件。要仅分发单个可执行文件,您需要将主可执行文件和 cygwin.dll 作为二进制资源添加到“ stub ”中。这有点难看,但很简单。
另一种选择是获取 source to cygwin ,并将其构建为静态库。至少在理论上,这应该更干净——但毫无疑问,这也需要更多的工作。让它构建为纯静态代码而不是 DLL 几乎肯定需要一些工作,尽管甚至很难猜测需要多少。只是浏览一下,它似乎不太可能是几个小时或类似的快速工作(除非我错过了一些已经支持静态构建它的东西,当然)。
关于dll - 用 Cygwin 编译独立的 exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3640115/