diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2866fb9ffa6c1195902068b290edaf6ef5371815..fecad62ac692af3d83dd7edb8fe96e124cd069e1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -48,6 +48,13 @@ if(BUILD_TESTS)
     set(_GNSS_UTILS_ROOT_DIR ${CMAKE_SOURCE_DIR})
 endif()
 
+# ============ DEPENDENCIES ============ 
+FIND_PACKAGE(Eigen3 3.3 REQUIRED CONFIG)
+if(${EIGEN3_VERSION_STRING} VERSION_LESS 3.3)
+  message(FATAL_ERROR "GnssUtils requires Eigen >= 3.3. Found Eigen ${EIGEN3_VERSION_STRING}")
+endif()
+
+# ============ config.h ============ 
 # Define the directory where will be the configured config.h
 SET(GNSS_UTILS_CONFIG_DIR ${PROJECT_BINARY_DIR}/conf/${PROJECT_NAME}/internal)
 
@@ -111,8 +118,6 @@ SET(RTKLIB_SRC
     ${RTKLIB_SRC_DIR}/rcv/ublox.c)
 
     
-FIND_PACKAGE(Eigen3 3.3 REQUIRED CONFIG)
-
 # Adding include directories
 INCLUDE_DIRECTORIES(BEFORE include ${RTKLIB_SRC_DIR})
 
@@ -120,7 +125,7 @@ INCLUDE_DIRECTORIES(BEFORE include ${RTKLIB_SRC_DIR})
 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SOURCES} ${RTKLIB_SRC})
 
 # Link this library wrt. its dependencies
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} Eigen3::Eigen)
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} PUBLIC Eigen3::Eigen)
 
 # Examples
 ADD_SUBDIRECTORY(src/examples)