diff --git a/src/http.cpp b/src/http.cpp
index 203b526a8bce3f871d5332f89b7fdc964262986f..c0d2f25f876d66133fef3ae4e67b584363ecae6c 100644
--- a/src/http.cpp
+++ b/src/http.cpp
@@ -567,6 +567,8 @@ Connection::async_connect(std::vector<asio::ip::tcp::endpoint>&& endpoints, Conn
     }
     auto& base = ssl_socket_? ssl_socket_->lowest_layer() : *socket_;
 
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-variable"
     ConnectHandlerCb wcb = [&base, cb=std::move(cb)](const asio::error_code& ec, const asio::ip::tcp::endpoint& endpoint) {
         if (!ec) {
             auto socket = base.native_handle();
@@ -614,6 +616,8 @@ Connection::async_connect(std::vector<asio::ip::tcp::endpoint>&& endpoints, Conn
         if (cb)
             cb(ec, endpoint);
     };
+#pragma GCC diagnostic pop
+
     if (ssl_socket_)
         asio::async_connect(ssl_socket_->lowest_layer(), std::move(endpoints), wrapCallabck(std::move(wcb)));
     else
diff --git a/src/network_utils.cpp b/src/network_utils.cpp
index e9cd4ee5f4391298d3907b2d74b6f3b2de0f288a..8f523b8c568e39cff9df78873720c11a9d4cf64a 100644
--- a/src/network_utils.cpp
+++ b/src/network_utils.cpp
@@ -148,6 +148,8 @@ UdpSocket::sendTo(const SockAddr& dest, const uint8_t* data, size_t size, bool r
 #ifdef MSG_CONFIRM
     if (replied)
         flags |= MSG_CONFIRM;
+#else
+    (void) replied;
 #endif
 #ifdef MSG_NOSIGNAL
     flags |= MSG_NOSIGNAL;
diff --git a/tests/dhtproxytester.cpp b/tests/dhtproxytester.cpp
index 4e6820c53c209481aafd2eb10d7d3249f1353f7f..d2b541e9efda9f1b022189ca617f84facdc903d7 100644
--- a/tests/dhtproxytester.cpp
+++ b/tests/dhtproxytester.cpp
@@ -309,13 +309,13 @@ DhtProxyTester::testShutdownStop()
     for (size_t i = 0; i < C; i++) {
         auto nodeTest = std::make_shared<dht::DhtRunner>();
         nodeTest->run(0, clientConfig);
-        nodeTest->put(key, dht::Value(mtu), [&](bool ok) {
+        nodeTest->put(key, dht::Value(mtu), [&](bool /*ok*/) {
             callback_count++;
         });
         nodeTest->get(key, [&](const std::vector<std::shared_ptr<dht::Value>>& vals){
             values.insert(values.end(), vals.begin(), vals.end());
             return true;
-        },[&](bool ok){
+        },[&](bool /*ok*/){
             callback_count++;
         });
         bool done = false;
diff --git a/tests/dhtrunnertester.cpp b/tests/dhtrunnertester.cpp
index 81c8c8861b23aad71cfa4abff4b23b35c3bb5e02..79513ad97b223fe602525dfaaea12ca8b4831c5e 100644
--- a/tests/dhtrunnertester.cpp
+++ b/tests/dhtrunnertester.cpp
@@ -94,7 +94,6 @@ void
 DhtRunnerTester::testListen() {
     std::mutex mutex;
     std::condition_variable cv;
-    std::atomic_uint valueCount(0);
     std::atomic_uint valueCounta(0);
     std::atomic_uint valueCountb(0);
     std::atomic_uint valueCountc(0);