diff --git a/quiche/common/btree_scheduler.h b/quiche/common/btree_scheduler.h
index d2bb765..75312a3 100644
--- a/quiche/common/btree_scheduler.h
+++ b/quiche/common/btree_scheduler.h
@@ -41,7 +41,7 @@
 // The Id type has to define operator==, be hashable via absl::Hash, and
 // printable via operator<<; the Priority type has to define operator<.
 template <typename Id, typename Priority>
-class QUICHE_EXPORT BTreeScheduler {
+class QUICHE_NO_EXPORT BTreeScheduler {
  public:
   // Returns true if there are any streams registered.
   bool HasRegistered() const { return !streams_.empty(); }
diff --git a/quiche/common/print_elements.h b/quiche/common/print_elements.h
index ae69c40..3c39cd4 100644
--- a/quiche/common/print_elements.h
+++ b/quiche/common/print_elements.h
@@ -16,7 +16,7 @@
 // Print elements of any iterable container that has cbegin() and cend() methods
 // and the elements have operator<<(ostream) override.
 template <typename T>
-QUICHE_EXPORT inline std::string PrintElements(const T& container) {
+QUICHE_NO_EXPORT inline std::string PrintElements(const T& container) {
   std::stringstream debug_string;
   debug_string << "{";
   auto it = container.cbegin();
diff --git a/quiche/common/wire_serialization_test.cc b/quiche/common/wire_serialization_test.cc
index 37216ca..f35c13d 100644
--- a/quiche/common/wire_serialization_test.cc
+++ b/quiche/common/wire_serialization_test.cc
@@ -237,14 +237,15 @@
 };
 
 TEST(SerializationTest, CustomStructWritesTooLittle) {
-  constexpr absl::string_view kStr = "\xaa\xbb\xcc\xdd";
   absl::Status status;
 #if defined(NDEBUG)
+  constexpr absl::string_view kStr = "\xaa\xbb\xcc\xdd";
   status = SerializeIntoSimpleBuffer(WireFormatterThatWritesTooLittle(kStr))
                .status();
   EXPECT_THAT(status, StatusIs(absl::StatusCode::kInternal,
                                ::testing::HasSubstr("Excess 1 bytes")));
-#else
+#elif GTEST_HAS_DEATH_TEST
+  constexpr absl::string_view kStr = "\xaa\xbb\xcc\xdd";
   EXPECT_QUICHE_DEBUG_DEATH(
       status = SerializeIntoSimpleBuffer(WireFormatterThatWritesTooLittle(kStr))
                    .status(),
diff --git a/quiche/http2/test_tools/hpack_example_test.cc b/quiche/http2/test_tools/hpack_example_test.cc
index 4dd24bd..abc7395 100644
--- a/quiche/http2/test_tools/hpack_example_test.cc
+++ b/quiche/http2/test_tools/hpack_example_test.cc
@@ -34,11 +34,13 @@
   EXPECT_EQ(absl::string_view(kExpected, sizeof kExpected), bytes);
 }
 
+#ifdef GTEST_HAS_DEATH_TEST
 TEST(HpackExampleToStringOrDie, InvalidInput) {
   EXPECT_DEATH(HpackExampleToStringOrDie("4"), "Truncated");
   EXPECT_DEATH(HpackExampleToStringOrDie("4x"), "half");
   EXPECT_DEATH(HpackExampleToStringOrDie(""), "empty");
 }
+#endif
 
 }  // namespace
 }  // namespace test
diff --git a/quiche/quic/tools/connect_tunnel_test.cc b/quiche/quic/tools/connect_tunnel_test.cc
index 379da7c..f52afce 100644
--- a/quiche/quic/tools/connect_tunnel_test.cc
+++ b/quiche/quic/tools/connect_tunnel_test.cc
@@ -99,6 +99,11 @@
 class ConnectTunnelTest : public quiche::test::QuicheTest {
  public:
   void SetUp() override {
+#if defined(_WIN32)
+    WSADATA wsa_data;
+    const WORD version_required = MAKEWORD(2, 2);
+    ASSERT_EQ(WSAStartup(version_required, &wsa_data), 0);
+#endif
     auto socket = std::make_unique<StrictMock<MockSocket>>();
     socket_ = socket.get();
     ON_CALL(socket_factory_,
diff --git a/quiche/quic/tools/connect_udp_tunnel_test.cc b/quiche/quic/tools/connect_udp_tunnel_test.cc
index d86ff0c..73b06c2 100644
--- a/quiche/quic/tools/connect_udp_tunnel_test.cc
+++ b/quiche/quic/tools/connect_udp_tunnel_test.cc
@@ -113,6 +113,11 @@
 class ConnectUdpTunnelTest : public quiche::test::QuicheTest {
  public:
   void SetUp() override {
+#if defined(_WIN32)
+    WSADATA wsa_data;
+    const WORD version_required = MAKEWORD(2, 2);
+    ASSERT_EQ(WSAStartup(version_required, &wsa_data), 0);
+#endif
     auto socket = std::make_unique<StrictMock<MockSocket>>();
     socket_ = socket.get();
     ON_CALL(socket_factory_,
