【问题标题】:Can you statically compile a cygwin application?您可以静态编译 cygwin 应用程序吗?
【发布时间】:2010-09-25 08:05:57
【问题描述】:

cygwin 是否允许静态编译的二进制文件?这将防止 cygwin1.dll 出现在目标机器的 PATH 中。

【问题讨论】:

    标签: c linker cygwin


    【解决方案1】:

    不,目前无法静态链接到 cygwin1.dll;如果您的应用程序不使用 unix 仿真(即纯 win32),您可以将 -mno-cygwin 传递给编译器。

    另请参阅常见问题解答:
    http://cygwin.com/faq/faq.html#faq.programming.win32-no-cygwin
    http://cygwin.com/faq/faq.html#faq.programming.static-linking

    【讨论】:

      【解决方案2】:

      Cygwin 的 GCC 不再支持 -mno-cygwin

      尝试改用 mingw-gcc,例如x86_64-w64-mingw32-gcc,如Cygwin FAQ 中所述。

      【讨论】:

        【解决方案3】:

        对于安装了 mingw32 的 Cygwin,您的命令行将采用以下形式

        x86_64-w64-mingw32-gcc.exe main.c -o main.exe
        

        这完全绕过了对 cygwin1.dll 的需求。

        【讨论】:

        • 这几乎对我有用,除了我得到一个“致命错误:sys/dir.h:没有这样的文件或目录#include 编译终止。”知道我还需要在命令行中添加什么吗?
        猜你喜欢
        • 1970-01-01
        • 2011-07-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-16
        • 1970-01-01
        • 1970-01-01
        • 2015-07-15
        相关资源
        最近更新 更多