diff --git a/src/exceptions.h b/src/exceptions.h
index 180e63a..aa137e0 100644
--- a/src/exceptions.h
+++ b/src/exceptions.h
@@ -35,6 +35,7 @@
 #define __EXCEPTIONS_H__
 
 #include <fmt/core.h>
+#include <fmt/format.h>
 #include <stdexcept>
 #include <string>
 
diff --git a/src/util/logger.h b/src/util/logger.h
index 6519d88..9458481 100644
--- a/src/util/logger.h
+++ b/src/util/logger.h
@@ -40,6 +40,7 @@
 #endif
 #include <spdlog/spdlog.h>
 #include <type_traits>
+#include <cstring>
 
 #ifdef GRBDEBUG
 #include <array>
diff --git a/src/util/thread_runner.h b/src/util/thread_runner.h
index a2e55f8..08dbc8b 100644
--- a/src/util/thread_runner.h
+++ b/src/util/thread_runner.h
@@ -36,6 +36,7 @@
 #include <mutex>
 #include <pthread.h>
 #include <thread>
+#include <cstring>
 
 using ThreadProc = std::function<void(void* target)>;
 
diff --git a/src/util/url_utils.h b/src/util/url_utils.h
index 4ab8ace..6365623 100644
--- a/src/util/url_utils.h
+++ b/src/util/url_utils.h
@@ -28,6 +28,7 @@
 #include <string_view>
 #include <utility>
 #include <vector>
+#include <cstring>
 
 // URL FORMATTING CONSTANTS
 constexpr auto URL_PARAM_SEPARATOR = std::string_view("/");
diff --git a/src/iohandler/mem_io_handler.h b/src/iohandler/mem_io_handler.h
index 3e29aa7..71e09c1 100644
--- a/src/iohandler/mem_io_handler.h
+++ b/src/iohandler/mem_io_handler.h
@@ -37,6 +37,7 @@
 #include "io_handler.h"
 
 #include <string>
+#include <cstring>
 
 /// @brief Allows the web server to read from a memory buffer instead of a file.
 class MemIOHandler : public IOHandler {
diff --git a/src/database/search_handler.h b/src/database/search_handler.h
index ac5afb1..30181e0 100644
--- a/src/database/search_handler.h
+++ b/src/database/search_handler.h
@@ -33,6 +33,7 @@
 
 #include <algorithm>
 #include <fmt/core.h>
+#include <fmt/format.h>
 #include <map>
 #include <memory>
 #include <tuple>
