diff --git a/CMakeLists.txt b/CMakeLists.txt
index fd65ec9498cbacacb8c476631af7301ffe987db2..30b6b540f80669e5d391f8f215b5e59a66ca1340 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -125,6 +125,7 @@ if (DHTNET_PUPNP AND NOT MSVC)
         set(DHTNET_PUPNP Off)
     else()
         set(upnp_LIBRARIES PkgConfig::upnp)
+        set (requiresprivate "${requiresprivate} libupnp")
     endif()
 endif()
 if (DHTNET_NATPMP AND NOT MSVC)
@@ -136,6 +137,7 @@ if (DHTNET_NATPMP AND NOT MSVC)
             set(DHTNET_NATPMP Off)
         else()
             message("NAT-PMP found: ${natpmp_LIBRARIES}")
+            set (libsprivate "${libsprivate} -lnatpmp")
         endif()
     endif()
 endif()