diff --git a/CMakeLists.txt b/CMakeLists.txt
index f2c66cce01fab914cb4edee390cbdca55c49e007..0a00252da414ee2532b732a49621f5be595cadfd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,7 +2,9 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.10)
 project(wolf_ros_imu)
 
 ## Compile as C++14
-add_compile_options(-std=c++14)
+add_compile_options(-std=c++14) 
+# -fPIC and -rdynamic ensure unique singleton instance across shared libraries (for factories) see: https://stackoverflow.com/a/8626922
+SET(CMAKE_CXX_FLAGS "-fPIC -rdynamic")
 
 ## Find catkin macros and libraries
 ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)