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 bf53604c84f0c30f1168c2a32ccad9f03627ab94..41ab43c12ed2a28d82020d36602dcb8cd47902af 100644
--- a/operators/div_k_grad/CMakeLists.txt
+++ b/operators/div_k_grad/CMakeLists.txt
@@ -17,6 +17,7 @@ add_library( opgen-div_k_grad
    P2ElementwiseDivKGradP1CoefficientParametricP2Map.cpp
    P2ElementwiseDivKGradP1CoefficientParametricP2Map.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 c35b8bf626b8549d03067f1832d17ace21ed0dd9..babd1a6db5fe9bccdfe01edef8ae18ec1be7da1d 100644
--- a/operators/divergence/CMakeLists.txt
+++ b/operators/divergence/CMakeLists.txt
@@ -25,6 +25,7 @@ add_library( opgen-divergence
    P2VectorToP1ElementwiseDivergenceParametricP2Map.cpp
    P2VectorToP1ElementwiseDivergenceParametricP2Map.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 4590cc7bde5f7dd0cba663ad8bdd0e6dc5ab615a..0a230e8c33177bf84e611487d9eae94d54ede4e6 100644
--- a/operators/epsilon/CMakeLists.txt
+++ b/operators/epsilon/CMakeLists.txt
@@ -57,6 +57,7 @@ add_library( opgen-epsilon
    P2VectorElementwiseEpsilonP1ViscosityParametricP2Map.cpp
    P2VectorElementwiseEpsilonP1ViscosityParametricP2Map.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 6346bd19999f4fa02bf5f857e535ffdac550cff2..1bb9d976793d1178ac9a09355b5d4bb9ad42dd49 100644
--- a/operators/full_stokes/CMakeLists.txt
+++ b/operators/full_stokes/CMakeLists.txt
@@ -55,6 +55,7 @@ add_library( opgen-full_stokes
    P2VectorElementwiseFullStokesP1ViscosityParametricP2Map.cpp
    P2VectorElementwiseFullStokesP1ViscosityParametricP2Map.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 6d6837640385975ca45501a86e726e00760c7cee..dd7eeaf90d1886a8e6a82dfde8d9a14f383e00d8 100644
--- a/operators/gradient/CMakeLists.txt
+++ b/operators/gradient/CMakeLists.txt
@@ -25,6 +25,7 @@ add_library( opgen-gradient
    P1ToP2VectorElementwiseGradientParametricP2Map.cpp
    P1ToP2VectorElementwiseGradientParametricP2Map.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 98b0825bdb48a350743091e91d14c29e1bebefe8..07f8416145fb520bacf937691ee78b7e73f49323 100644
--- a/operators/k_divdiv/CMakeLists.txt
+++ b/operators/k_divdiv/CMakeLists.txt
@@ -9,6 +9,7 @@ add_library( opgen-k_divdiv
    P2VectorElementwiseKDivdivParametricP2Map.cpp
    P2VectorElementwiseKDivdivParametricP2Map.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 d7bd47c3a51cfc4dd1b650d94746475c4e5fa3ed..af28290682db7a7357da223009dff81d62120449 100644
--- a/operators/k_mass/CMakeLists.txt
+++ b/operators/k_mass/CMakeLists.txt
@@ -27,6 +27,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 1fa70059f497354a393f6fec6f0d470cb688b84c..5b0e9af9eba3c2e5d6dc144ab04a660e1c36fcc7 100644
--- a/operators/terraneo/CMakeLists.txt
+++ b/operators/terraneo/CMakeLists.txt
@@ -29,6 +29,7 @@ add_library( opgen-terraneo
    P2VectorToP1ElementwiseFrozenVelocityP1DensityParametricP2Map.cpp
    P2VectorToP1ElementwiseFrozenVelocityP1DensityParametricP2Map.hpp
 )
+target_link_libraries( opgen-terraneo PRIVATE hyteg )
 
 if(HYTEG_BUILD_WITH_AVX AND WALBERLA_DOUBLE_ACCURACY)
    target_sources(opgen-terraneo PRIVATE