diff --git a/dap-sdk/plugin/CMakeLists.txt b/dap-sdk/plugin/CMakeLists.txt
index 6ef731ee9d50ab9059bdd808154b48108eba8cf9..1406a0fc98ad0d5a961df90365a287594a946ed3 100644
--- a/dap-sdk/plugin/CMakeLists.txt
+++ b/dap-sdk/plugin/CMakeLists.txt
@@ -12,7 +12,7 @@ add_library(${PROJECT_NAME} STATIC ${DAP_PLUGIN_SRCS} ${DAP_PLUGIN_HEADERS})
 
 target_link_libraries(${PROJECT_NAME})
 
-target_link_libraries(${PROJECT_NAME} dap_core dap_cli_server)
+target_link_libraries(${PROJECT_NAME} dap_core dap_cli_server dl)
 
 target_include_directories(${PROJECT_NAME} PUBLIC include/ )
 
diff --git a/dap-sdk/plugin/src/dap_plugin_binary.c b/dap-sdk/plugin/src/dap_plugin_binary.c
index 8c3661a56d2f3413e928eb5a5ea73eaf66d231dd..7a52391a637eee6a6a81754334d66143bc547b5e 100644
--- a/dap-sdk/plugin/src/dap_plugin_binary.c
+++ b/dap-sdk/plugin/src/dap_plugin_binary.c
@@ -89,7 +89,7 @@ static int s_type_callback_load(dap_plugin_manifest_t * a_manifest, void ** a_pv
 #if defined (DAP_OS_DARWIN)
     char * l_path = dap_strdup_printf("%s/%s.darwin.%s.dylib",a_manifest->path,a_manifest->name,dap_get_arch());
 #elif defined (DAP_OS_LINUX)
-    char * l_path = dap_strdup_printf("%s/lib%s.linux.common.%s.so",a_manifest->path,a_manifest->name,dap_get_arch());
+    char * l_path = dap_strdup_printf("%s/%s.linux-common.%s.so",a_manifest->path,a_manifest->name,dap_get_arch());
 #endif
     l_pvt_data->handle = dlopen(l_path, RTLD_NOW | RTLD_GLOBAL); // Try with specified architecture first
     if(l_pvt_data->handle){
diff --git a/dap-sdk/plugin/src/dap_plugin_manifest.c b/dap-sdk/plugin/src/dap_plugin_manifest.c
index ee015e005108c07f70fd32e08f6d2a57eda9eec2..c2f776d4617c65bebba8bb3483690e2a44f8a1f2 100644
--- a/dap-sdk/plugin/src/dap_plugin_manifest.c
+++ b/dap-sdk/plugin/src/dap_plugin_manifest.c
@@ -11,7 +11,7 @@
 
 #define LOG_TAG "dap_plugin_manifest"
 
-dap_plugin_manifest_t* s_manifests = NULL;
+static dap_plugin_manifest_t* s_manifests = NULL;
 
 static void s_manifest_delete(dap_plugin_manifest_t *a_manifest);