簡體   English   中英

如何為window構建一個基於linux的程序?

[英]how to build a linux-based program for window?

我想為 Windows 構建一個完全獨立的基於 inux 的程序。 我嘗試使用命令在 ubuntu 上使用 mingw64

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

但它失敗了

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

這里是github中的源代碼: https : //github.com/shadowsocks/simple-obfs

那么如何為 Windows 構建完全獨立的程序呢? 我可以試試 cygwin 或 msys2 嗎?

更新:

我找到了另一個已移植的源代碼。 但是當我編譯它時

./configure --host=x86_64-w64-mingw32 CFLAGS="-static" LDFLAGS="-static"

我得到一個仍然需要libssp-0.dll的可執行文件。

那么如何使libssp靜態鏈接?

這是新的源代碼: https : //github.com/Windendless/simple-obfs

我認為select.h中的功能在 gcc 的 MinGW 版本上不可用,因為它在 Windows 平台上不可用。 如果您正在構建打算在 Windows 上構建的東西,那么您可能會發現可以傳遞給configure選項,以啟用不同的、對 Windows 友好的方式來實現相同的目標。 如果您正在構建僅真正打算在 Linux 上使用的東西,那么您可能就不走運了。 在這種情況下,您的選擇實際上是:

  1. 修改代碼,使其不需要select.h 其中一些功能可能已經存在於 Windows Sockets API 中,但實現方式略有不同。 但是,它也可能同樣不是,在這種情況下,您必須做一些工作。

  2. 使用比 MinGW 功能更豐富的 Windows 兼容層。 Cygwin 可能會很好地工作,就像 Windows 10 中的適用於 Linux 的 Windows 子系統一樣。但是,這些方法都不是構建“獨立”應用程序,因為它們需要一些支持基礎設施。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM