Ada cukup banyak pekerjaan yang terlibat untuk port dengan bersih ke WIN32 asli. Saya menghabiskan beberapa sore untuk merasakannya. Yang mengatakan saya percaya itu dibangun di Cygwin ...
Saya mencoba untuk memenuhi libh2o menggunakan mingw. tetapi gnulib-tool tidak dapat mendukung cmake. Saya gagal mengimpor
Saya baru saja membuat libh2o melalui CYGWIN. Hanya ada sedikit perubahan yang diperlukan:
$ cmake . -G"Unix Makefiles" -DWITH_BUNDLED_SSL=0 -DWITH_MRUBY=0 -DLIBUV_LIBRARIES=~/git/libuv/.libs/libuv.a -DLIBUV_INCLUDE_DIR=~/git/libuv/include -DLIBUV_VERSION=1.11.0
$ make examples-simple
$ git diff
diff --git a/deps/libyrmcds/yrmcds_portability.h b/deps/libyrmcds/yrmcds_portability.h
index c9fd4d91..b1f151d4 100644
--- a/deps/libyrmcds/yrmcds_portability.h
+++ b/deps/libyrmcds/yrmcds_portability.h
@@ -27,7 +27,7 @@
# define htole64(x) OSSwapHostToLittleInt64(x)
# define be64toh(x) OSSwapBigToHostInt64(x)
# define le64toh(x) OSSwapLittleToHostInt64(x)
-#elif defined(__linux__)
+#elif defined(__linux__) || defined (__CYGWIN__)
# include <endian.h>
#elif defined(sun) // Solaris
# include <sys/byteorder.h>
Saya mencoba membangun server lengkap hari ini - berhasil. Sekarang saya bisa menggunakan h2o di Windows. Saya pikir ini harus diajukan dalam permintaan tarik.
Utas ini sekarang berusia lebih dari 3 tahun. h2o telah berubah sejak saat itu dan sumber saat ini tidak lagi membangun atau bekerja apa adanya di MingW (jika memang pernah). Saya membuat patch untuk h2o saat porting Urbit ke Windows bahwa proyek h2o mungkin tertarik. Cakupannya terbatas pada apa yang saya butuhkan untuk Urbit: hanya varian libuv yang dibangun, dan tidak ada dukungan fastcgi atau memcached. Perubahan terbesar menurut jumlah baris disebabkan oleh libuv uv_buf_t
dan h2o h2o_iovec_t
mendeklarasikan dua bidang dalam urutan terbalik: di MingW, libuv menggunakan urutan WinSock untuk menghindari penyalinan tambahan, sedangkan h2o menggunakan POSIX memesan. Tambalan menukar bidang di h2o_iovec_t
jika dibangun di MingW.
/cc @kazuho
Komentar yang paling membantu
Saya baru saja membuat libh2o melalui CYGWIN. Hanya ada sedikit perubahan yang diperlukan: