H2o: Bisakah saya mengkompilasi libh2o di bawah windows

Dibuat pada 18 Mei 2017  ·  5Komentar  ·  Sumber: h2o/h2o

Komentar yang paling membantu

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>

Semua 5 komentar

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... ke proyek di bawah windows.

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

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

proyb6 picture proyb6  ·  5Komentar

utrenkner picture utrenkner  ·  8Komentar

Jxck picture Jxck  ·  7Komentar

ahupowerdns picture ahupowerdns  ·  8Komentar

utrenkner picture utrenkner  ·  3Komentar