如何为窗口构建基于linux的程序?

时间:2017-10-31 11:58:40

标签: linux windows compiler-errors cross-compiling

我想为windows完全独立地构建一个基于inux的程序。 我尝试使用命令

在ubuntu上使用mingw64
{% extends 'base.html' %}
{% block content %}
    something

    <h1>Name:
    {% block for_child %}
    {% endblock %}
    </h1>

{% endblock %}

但是

失败了
./configure --host=x86_64-w64-mingw32 --disable-shared --enable-static LDFLAGS="-L /usr/local/lib/"
make

以下是github中的源代码: https://github.com/shadowsocks/simple-obfs

那么如何为Windows完全独立构建程序呢? 我可以试试cygwin或msys2吗?

更新

我找到了另一个移植过的源代码。 但是当我用

编译它时
src/libcork/posix/subprocess.c:14:24: fatal error: sys/select.h: No such file or directory
 #include <sys/select.h>
                        ^
compilation terminated.

我得到一个仍然需要./configure --host=x86_64-w64-mingw32 CFLAGS="-static" LDFLAGS="-static" 的可执行文件。

那么如何才能使libssp-0.dll成为静态链接?

以下是新的源代码:https://github.com/Windendless/simple-obfs

1 个答案:

答案 0 :(得分:1)

我不认为select.h中的功能在MingW版本的gcc上可用,因为它在Windows平台上不可用。如果你正在构建一些打算在Windows上构建的东西,那么你可能会发现有一些选项可以传递给configure,这些选项可以实现不同的,Windows友好的方式来实现同样的功能。如果你正在构建一些只是真正用于Linux的东西,那么你可能会失败。在这种情况下,您的选择实际上是:

  1. 修改代码,使其不需要select.h。其中一些功能可能已存在于Windows套接字API中,但实现方式有所不同。但是,它可能同样没有,在这种情况下,你将不得不做一些工作。

  2. 使用功能比MinGW更丰富的Windows兼容层。 Cygwin可能很有用,Windows 10中的Windows子系统也可能正常工作。但是,这些方法都不等于构建“独立”应用程序,因为它们需要一些支持基础架构。