diff --git a/cmake/create_cmake_config_files.cmake b/cmake/create_cmake_config_files.cmake
index 13fc78de05cd58b66df1654ba51b0f98cdff1479..5a8ce377cb1ef4f77598913493897a149a26b7aa 100644
--- a/cmake/create_cmake_config_files.cmake
+++ b/cmake/create_cmake_config_files.cmake
@@ -48,6 +48,9 @@ foreach(LIBRARY ${LIST})
     set(${PROJECT_NAME}_LINKER_FLAGS_MAKEFILE "${${PROJECT_NAME}_LINKER_FLAGS_MAKEFILE} ${LIBRARY}")
   elseif(LIBRARY MATCHES "^-l")   # library name does not contain slashes but already the -l option: directly quote it
     set(${PROJECT_NAME}_LINKER_FLAGS_MAKEFILE "${${PROJECT_NAME}_LINKER_FLAGS_MAKEFILE} ${LIBRARY}")
+  elseif(LIBRARY MATCHES "::")  # library name is an exported target - we need to resolve it for Makefiles
+    get_property(lib_loc TARGET ${LIBRARY} PROPERTY LOCATION)
+    string(APPEND ${PROJECT_NAME}_LINKER_FLAGS_MAKEFILE " ${lib_loc}")
   else()                          # link against library with -l option
     set(${PROJECT_NAME}_LINKER_FLAGS_MAKEFILE "${${PROJECT_NAME}_LINKER_FLAGS_MAKEFILE} -l${LIBRARY}")
   endif()