diff --git a/generate/generate.py b/generate/generate.py
index 507a0847802dfdfc79b5c302d0d70b3aa4eea8ba..69c3b263e044c3153ce43b6a3a12e56fd16afc4f 100644
--- a/generate/generate.py
+++ b/generate/generate.py
@@ -155,6 +155,7 @@ def generate_cmake_from_cpp_files(output_dir_path: str):
                 print(f"   {xpp_file}", file=f)
 
             print(f")", file=f)
+            print(f"target_link_libraries( {lib_name} PRIVATE hyteg )", file=f)
             print(f"", file=f)
 
             noarch_dir = os.path.join(subdir, "noarch")
diff --git a/operators/curl_curl/CMakeLists.txt b/operators/curl_curl/CMakeLists.txt
index 56728228ebc11283efcdf0ec4b2d86753d61eb27..eb8fa16136ca9581d90c867d1728acb7c6510ad2 100644
--- a/operators/curl_curl/CMakeLists.txt
+++ b/operators/curl_curl/CMakeLists.txt
@@ -3,6 +3,7 @@ add_library( opgen-curl_curl
    N1E1ElementwiseCurlCurl.cpp
    N1E1ElementwiseCurlCurl.hpp
 )
+target_link_libraries( opgen-curl_curl PRIVATE hyteg )
 
 if(HYTEG_BUILD_WITH_AVX AND WALBERLA_DOUBLE_ACCURACY)
    target_sources(opgen-curl_curl PRIVATE
diff --git a/operators/diffusion/CMakeLists.txt b/operators/diffusion/CMakeLists.txt
index b740949084c56eb3e4a3a2ef7e028f34d6047213..e6e256c169713f0da7d92aa663a4b9cd2327b7ba 100644
--- a/operators/diffusion/CMakeLists.txt
+++ b/operators/diffusion/CMakeLists.txt
@@ -13,6 +13,7 @@ add_library( opgen-diffusion
    P2ElementwiseDiffusionParametricP2Map.cpp
    P2ElementwiseDiffusionParametricP2Map.hpp
 )
+target_link_libraries( opgen-diffusion PRIVATE hyteg )
 
 if(HYTEG_BUILD_WITH_AVX AND WALBERLA_DOUBLE_ACCURACY)
    target_sources(opgen-diffusion PRIVATE
diff --git a/operators/div_k_grad/CMakeLists.txt b/operators/div_k_grad/CMakeLists.txt
index 2c1b45d92549708b6877d4d5ddaafe8404e5569a..10bf29e1623e5485e65e455eb77af15b35f4a9e9 100644
--- a/operators/div_k_grad/CMakeLists.txt
+++ b/operators/div_k_grad/CMakeLists.txt
@@ -15,6 +15,7 @@ add_library( opgen-div_k_grad
    P2ElementwiseDivKGradP1CoefficientIcosahedralShellMap.cpp
    P2ElementwiseDivKGradP1CoefficientIcosahedralShellMap.hpp
 )
+target_link_libraries( opgen-div_k_grad PRIVATE hyteg )
 
 if(HYTEG_BUILD_WITH_AVX AND WALBERLA_DOUBLE_ACCURACY)
    target_sources(opgen-div_k_grad PRIVATE
diff --git a/operators/divergence/CMakeLists.txt b/operators/divergence/CMakeLists.txt
index 37f13953429a4b62610840af18d8f55ebd5217fb..e799044573615731f28a9d21d7c479dd25a8f7f8 100644
--- a/operators/divergence/CMakeLists.txt
+++ b/operators/divergence/CMakeLists.txt
@@ -23,6 +23,7 @@ add_library( opgen-divergence
    P2VectorToP1ElementwiseDivergenceIcosahedralShellMap.cpp
    P2VectorToP1ElementwiseDivergenceIcosahedralShellMap.hpp
 )
+target_link_libraries( opgen-divergence PRIVATE hyteg )
 
 if(HYTEG_BUILD_WITH_AVX AND WALBERLA_DOUBLE_ACCURACY)
    target_sources(opgen-divergence PRIVATE
diff --git a/operators/epsilon/CMakeLists.txt b/operators/epsilon/CMakeLists.txt
index 49e6f485bcc92ac147242a3820ad47cbaffeb687..5fcfb68e36a6e227d214a5a9030daf11db50ff7d 100644
--- a/operators/epsilon/CMakeLists.txt
+++ b/operators/epsilon/CMakeLists.txt
@@ -55,6 +55,7 @@ add_library( opgen-epsilon
    P2VectorElementwiseEpsilonP1ViscosityIcosahedralShellMap.cpp
    P2VectorElementwiseEpsilonP1ViscosityIcosahedralShellMap.hpp
 )
+target_link_libraries( opgen-epsilon PRIVATE hyteg )
 
 if(HYTEG_BUILD_WITH_AVX AND WALBERLA_DOUBLE_ACCURACY)
    target_sources(opgen-epsilon PRIVATE
diff --git a/operators/full_stokes/CMakeLists.txt b/operators/full_stokes/CMakeLists.txt
index e3f161c99a92bcef64ff050fc508a7a9938f4e77..824cb9a6c3f9bd337820e0d4cf3f645c0a22ef9d 100644
--- a/operators/full_stokes/CMakeLists.txt
+++ b/operators/full_stokes/CMakeLists.txt
@@ -53,6 +53,7 @@ add_library( opgen-full_stokes
    P2VectorElementwiseFullStokesP1ViscosityIcosahedralShellMap.cpp
    P2VectorElementwiseFullStokesP1ViscosityIcosahedralShellMap.hpp
 )
+target_link_libraries( opgen-full_stokes PRIVATE hyteg )
 
 if(HYTEG_BUILD_WITH_AVX AND WALBERLA_DOUBLE_ACCURACY)
    target_sources(opgen-full_stokes PRIVATE
diff --git a/operators/gradient/CMakeLists.txt b/operators/gradient/CMakeLists.txt
index feb34ea04d783329ad063cee46516109c154ad7b..67068d2235abc910cea286bfa1b932fcd0a4664d 100644
--- a/operators/gradient/CMakeLists.txt
+++ b/operators/gradient/CMakeLists.txt
@@ -23,6 +23,7 @@ add_library( opgen-gradient
    P1ToP2VectorElementwiseGradientIcosahedralShellMap.cpp
    P1ToP2VectorElementwiseGradientIcosahedralShellMap.hpp
 )
+target_link_libraries( opgen-gradient PRIVATE hyteg )
 
 if(HYTEG_BUILD_WITH_AVX AND WALBERLA_DOUBLE_ACCURACY)
    target_sources(opgen-gradient PRIVATE
diff --git a/operators/k_divdiv/CMakeLists.txt b/operators/k_divdiv/CMakeLists.txt
index 64904b9bcd5b75bc76f43f7857e552ca345f8cd5..eddf0a90764d89b7cbd4c777a9de688701dbef4e 100644
--- a/operators/k_divdiv/CMakeLists.txt
+++ b/operators/k_divdiv/CMakeLists.txt
@@ -7,6 +7,7 @@ add_library( opgen-k_divdiv
    P2VectorElementwiseKDivdivIcosahedralShellMap.cpp
    P2VectorElementwiseKDivdivIcosahedralShellMap.hpp
 )
+target_link_libraries( opgen-k_divdiv PRIVATE hyteg )
 
 if(HYTEG_BUILD_WITH_AVX AND WALBERLA_DOUBLE_ACCURACY)
    target_sources(opgen-k_divdiv PRIVATE
diff --git a/operators/k_mass/CMakeLists.txt b/operators/k_mass/CMakeLists.txt
index 5f02fa01a36d38108dcb6587ead37989d4b0894e..164bebe618d579010b20abd0f7fa9663936d4fdf 100644
--- a/operators/k_mass/CMakeLists.txt
+++ b/operators/k_mass/CMakeLists.txt
@@ -25,6 +25,7 @@ add_library( opgen-k_mass
    P2ToP1ElementwiseKMassIcosahedralShellMap.cpp
    P2ToP1ElementwiseKMassIcosahedralShellMap.hpp
 )
+target_link_libraries( opgen-k_mass PRIVATE hyteg )
 
 if(HYTEG_BUILD_WITH_AVX AND WALBERLA_DOUBLE_ACCURACY)
    target_sources(opgen-k_mass PRIVATE
diff --git a/operators/mass/CMakeLists.txt b/operators/mass/CMakeLists.txt
index ed85f59b80d8db9cc24765174701e79e1a8469e8..41b7b016d28d86aaa24a0b52d7b411ee2f169203 100644
--- a/operators/mass/CMakeLists.txt
+++ b/operators/mass/CMakeLists.txt
@@ -13,6 +13,7 @@ add_library( opgen-mass
    P2ElementwiseMassParametricP2Map.cpp
    P2ElementwiseMassParametricP2Map.hpp
 )
+target_link_libraries( opgen-mass PRIVATE hyteg )
 
 if(HYTEG_BUILD_WITH_AVX AND WALBERLA_DOUBLE_ACCURACY)
    target_sources(opgen-mass PRIVATE
diff --git a/operators/terraneo/CMakeLists.txt b/operators/terraneo/CMakeLists.txt
index 7c0d7b5fdbd330eb2a3cc9b6e262514493799e70..a8a3eee62a29ebc1d5d15e4359dc6b18f370ae1b 100644
--- a/operators/terraneo/CMakeLists.txt
+++ b/operators/terraneo/CMakeLists.txt
@@ -25,6 +25,7 @@ add_library( opgen-terraneo
    P2VectorToP1ElementwiseFrozenVelocityP1DensityIcosahedralShellMap.cpp
    P2VectorToP1ElementwiseFrozenVelocityP1DensityIcosahedralShellMap.hpp
 )
+target_link_libraries( opgen-terraneo PRIVATE hyteg )
 
 if(HYTEG_BUILD_WITH_AVX AND WALBERLA_DOUBLE_ACCURACY)
    target_sources(opgen-terraneo PRIVATE