diff --git a/optimizer/Optimizer/EA/Population.h b/optimizer/Optimizer/EA/Population.h
index bd92c540957846d32cfb3890f2b099ef0ff3a310..a6347ce6794b3e7ed5e23287da4bd4c8d82d1d49 100644
--- a/optimizer/Optimizer/EA/Population.h
+++ b/optimizer/Optimizer/EA/Population.h
@@ -28,6 +28,7 @@
 #define __POPULATION_H__
 
 #include <map>
+#include <memory>
 #include <vector>
 #include <utility>
 #include <queue>
diff --git a/optimizer/Simulation/GenerateOpalSimulation.h b/optimizer/Simulation/GenerateOpalSimulation.h
index eb42749924d28d0737a2e55b8dfa5cbf8dad9f43..9ef29f52d9de746b741d5e961a8cb4b6a49151fb 100644
--- a/optimizer/Simulation/GenerateOpalSimulation.h
+++ b/optimizer/Simulation/GenerateOpalSimulation.h
@@ -34,6 +34,7 @@
 #define __GENERATE_SIMULATION_H__
 
 #include <iostream>
+#include <filesystem>
 #include <fstream>
 #include <sstream>
 #include <string>
diff --git a/optimizer/Tests/PopulationTest.cpp b/optimizer/Tests/PopulationTest.cpp
index 3553b709c3e9a00c995318a1aaab0820da413633..1760d5289fcc5cfc3e49472751a8184cd8b02145 100644
--- a/optimizer/Tests/PopulationTest.cpp
+++ b/optimizer/Tests/PopulationTest.cpp
@@ -22,6 +22,8 @@
 #include "Optimizer/EA/Individual.h"
 #include "gtest/gtest.h"
 
+#include <memory>
+
 namespace {
 
     // The fixture for testing class Foo.
diff --git a/optimizer/Util/CmdArguments.h b/optimizer/Util/CmdArguments.h
index cb2d61dc90051fab3a78b0b8f85294901d145216..550088c65955adb3200aa96a97053791b193c750 100644
--- a/optimizer/Util/CmdArguments.h
+++ b/optimizer/Util/CmdArguments.h
@@ -29,6 +29,7 @@
 #define __CMD_ARGUMENTS__
 
 #include <map>
+#include <memory>
 #include <string>
 #include <iostream>
 #include <sstream>
diff --git a/src/Algorithms/OrbitThreader.cpp b/src/Algorithms/OrbitThreader.cpp
index 34108e3bf2be7274629c39402d5a6f4da8a866f6..cc060b66c1744a2a2142821e815cfabcc82b2a64 100644
--- a/src/Algorithms/OrbitThreader.cpp
+++ b/src/Algorithms/OrbitThreader.cpp
@@ -35,6 +35,7 @@
 #include "Utilities/Util.h"
 
 #include <cmath>
+#include <filesystem>
 #include <iostream>
 #include <limits>
 
diff --git a/src/Amr/AmrYtWriter.cpp b/src/Amr/AmrYtWriter.cpp
index 27fe5655fd9e121e9c9e3f2d4b92f8cb663738a5..a42aca03db6dbcbac36ee9200a9febe99d69c582 100644
--- a/src/Amr/AmrYtWriter.cpp
+++ b/src/Amr/AmrYtWriter.cpp
@@ -31,6 +31,7 @@
 #include <AMReX_VisMF.H>
 #include <AMReX_VectorIO.H>
 #include <AMReX_NFiles.H>
+#include <filesystem>
 
 #include "AbstractObjects/OpalData.h"
 #include "Utilities/OpalException.h"
diff --git a/src/BasicActions/DumpEMFields.cpp b/src/BasicActions/DumpEMFields.cpp
index 37c965278836d9e99408b24893d17f99120246d8..c7b7573d9a73416be97194bc322f11065b789158 100644
--- a/src/BasicActions/DumpEMFields.cpp
+++ b/src/BasicActions/DumpEMFields.cpp
@@ -27,6 +27,7 @@
 #include "Utilities/Util.h"
 
 #include <cmath>
+#include <filesystem>
 #include <fstream>
 #include <map>
 
diff --git a/src/BasicActions/DumpFields.cpp b/src/BasicActions/DumpFields.cpp
index 066e8da2d2cbe14e2b152e2d79ce2bb355805070..0eb54ab84c917fc2ba94e1b4055ea8eab6184509 100644
--- a/src/BasicActions/DumpFields.cpp
+++ b/src/BasicActions/DumpFields.cpp
@@ -24,6 +24,7 @@
 #include "Utilities/OpalException.h"
 #include "Utilities/Util.h"
 
+#include <filesystem>
 #include <fstream>
 
 extern Inform* gmsg;
diff --git a/src/Classic/AbsBeamline/Cyclotron.cpp b/src/Classic/AbsBeamline/Cyclotron.cpp
index a2319032b0dde686474921acc9a9458030271aa4..66f701d852616a941a56fb13e8f65111e077dbe8 100644
--- a/src/Classic/AbsBeamline/Cyclotron.cpp
+++ b/src/Classic/AbsBeamline/Cyclotron.cpp
@@ -40,6 +40,7 @@
 #include <cmath>
 #include <cstring>
 #include <cstdio>
+#include <filesystem>
 #include <fstream>
 #include <map>
 
diff --git a/src/Classic/AbsBeamline/RFCavity.cpp b/src/Classic/AbsBeamline/RFCavity.cpp
index 78e74ad3bdd43149081841966d1e886479abbf8e..d37db731cdc9d48f165189b959ef142c1295f289 100644
--- a/src/Classic/AbsBeamline/RFCavity.cpp
+++ b/src/Classic/AbsBeamline/RFCavity.cpp
@@ -26,6 +26,7 @@
 #include "Utilities/Util.h"
 
 #include <boost/assign.hpp>
+#include <filesystem>
 
 #include "gsl/gsl_interp.h"
 #include "gsl/gsl_spline.h"
diff --git a/src/Classic/AbsBeamline/Vacuum.cpp b/src/Classic/AbsBeamline/Vacuum.cpp
index 3edfb2e4ece0d99945deac0c016b4eaffbe503ca..38a95f9e8ff87f4b6249d08b82d3a8a0ddbd157d 100644
--- a/src/Classic/AbsBeamline/Vacuum.cpp
+++ b/src/Classic/AbsBeamline/Vacuum.cpp
@@ -35,6 +35,7 @@
 
 #include <cmath>
 #include <cstdio>
+#include <filesystem>
 #include <fstream>
 #include <iostream>
 
diff --git a/src/Classic/Fields/Fieldmap.cpp b/src/Classic/Fields/Fieldmap.cpp
index 16660f26cf4b44a63079547a858705816b8524bf..5edc5bc0732494a0b76e107b7384499c4c055778 100644
--- a/src/Classic/Fields/Fieldmap.cpp
+++ b/src/Classic/Fields/Fieldmap.cpp
@@ -36,6 +36,7 @@
 
 #include <cmath>
 #include <iostream>
+#include <filesystem>
 #include <fstream>
 #include <ios>
 
diff --git a/src/Classic/Solvers/ScatteringPhysics.cpp b/src/Classic/Solvers/ScatteringPhysics.cpp
index 834b4b02a4b91714d2d170b0af5505b9a705d4de..20bc3aed6eec04e25a87f976faf62b4077394d28 100644
--- a/src/Classic/Solvers/ScatteringPhysics.cpp
+++ b/src/Classic/Solvers/ScatteringPhysics.cpp
@@ -43,6 +43,7 @@
 
 #include <algorithm>
 #include <cmath>
+#include <filesystem>
 #include <fstream>
 #include <iostream>
 
diff --git a/src/Classic/Structure/LossDataSink.cpp b/src/Classic/Structure/LossDataSink.cpp
index b382ecae88147e53295280dc654560cd8054f7c4..66233a9f662114e5fb685bf522b87440f25b7c33 100644
--- a/src/Classic/Structure/LossDataSink.cpp
+++ b/src/Classic/Structure/LossDataSink.cpp
@@ -28,6 +28,7 @@
 #include "Utility/IpplInfo.h"
 
 #include <cmath>
+#include <filesystem>
 
 extern Inform* gmsg;
 
diff --git a/src/Classic/Utilities/MSLang/Mask.cpp b/src/Classic/Utilities/MSLang/Mask.cpp
index de79e6a10e0545fa7d7ef07faff42ca443ea2125..610b0d975c8c34f2b31f619b8edffe6468c1ff74 100644
--- a/src/Classic/Utilities/MSLang/Mask.cpp
+++ b/src/Classic/Utilities/MSLang/Mask.cpp
@@ -4,6 +4,7 @@
 #include "Utilities/PortableBitmapReader.h"
 
 #include <boost/regex.hpp>
+#include <filesystem>
 
 namespace {
     void updateCache(const std::vector<bool> &pixels, std::vector<int> &cache, int x, int width) {
diff --git a/src/Classic/Utilities/Util.cpp b/src/Classic/Utilities/Util.cpp
index 4a1ee771bb75d5c0f8d018c694060d3e70131a63..9a6003dd9c958d4fe8afd1428ba3d4b6aa38a530 100644
--- a/src/Classic/Utilities/Util.cpp
+++ b/src/Classic/Utilities/Util.cpp
@@ -24,6 +24,7 @@
 
 #include <cctype>
 #include <fstream>
+#include <filesystem>
 #include <iostream>
 #include <iterator>
 #include <queue>
diff --git a/src/Distribution/ClosedOrbitFinder.h b/src/Distribution/ClosedOrbitFinder.h
index 48db4d201b10988fd08b9bda6e38bf754b1512c7..0a564499544a1c18f48ea43b7c7ef5677383dcac 100644
--- a/src/Distribution/ClosedOrbitFinder.h
+++ b/src/Distribution/ClosedOrbitFinder.h
@@ -30,6 +30,7 @@
 #include <algorithm>
 #include <array>
 #include <cmath>
+#include <filesystem>
 #include <functional>
 #include <limits>
 #include <numeric>
diff --git a/src/Distribution/LaserProfile.cpp b/src/Distribution/LaserProfile.cpp
index ea3a01b552ad67d26b34aadbafafe298aa2da7ac..dcdca06081094eb02bd5c27c194be63987e2051c 100644
--- a/src/Distribution/LaserProfile.cpp
+++ b/src/Distribution/LaserProfile.cpp
@@ -18,6 +18,7 @@
 #include "Utilities/Util.h"
 
 #include <fstream>
+#include <filesystem>
 #include <iostream>
 #include <cmath>
 #include <cstdio>
diff --git a/src/Distribution/SigmaGenerator.cpp b/src/Distribution/SigmaGenerator.cpp
index d2165156582c03f97dddacce26f6f67fc30b61cd..4183436bcd88fb7fcd729c8983f89393d3e89ba9 100644
--- a/src/Distribution/SigmaGenerator.cpp
+++ b/src/Distribution/SigmaGenerator.cpp
@@ -40,6 +40,7 @@
 #include "MapGenerator.h"
 
 #include <cmath>
+#include <filesystem>
 #include <iomanip>
 #include <limits>
 #include <numeric>
diff --git a/src/Elements/OpalBeamline.cpp b/src/Elements/OpalBeamline.cpp
index 1151cf77081bab8edc88a09649376b46562a8e41..5881c86a92a5f55bfb4722c53daba0b4bf953ec8 100644
--- a/src/Elements/OpalBeamline.cpp
+++ b/src/Elements/OpalBeamline.cpp
@@ -25,6 +25,7 @@
 #include "Utilities/Util.h"
 
 #include <boost/regex.hpp>
+#include <filesystem>
 #include <fstream>
 
 OpalBeamline::OpalBeamline():
diff --git a/src/Main.cpp b/src/Main.cpp
index d0bbcd7e5255ab674002a114f7f0eec6e954b29f..76dee1c79a3064b9d47ce1e9734c1684db781335 100644
--- a/src/Main.cpp
+++ b/src/Main.cpp
@@ -52,6 +52,7 @@
 #include <boost/system/error_code.hpp>
 
 #include <cstring>
+#include <filesystem>
 #include <iomanip>
 #include <iostream>
 #include <set>
diff --git a/src/Sample/Sampler.cpp b/src/Sample/Sampler.cpp
index 2f5c164f966c1ba8d819ba4cdb8adc1c5e94dc53..dab1a0bd31eee230dcca03840fdf00c7c1838406 100644
--- a/src/Sample/Sampler.cpp
+++ b/src/Sample/Sampler.cpp
@@ -19,6 +19,7 @@
 // You should have received a copy of the GNU General Public License
 // along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
+#include <filesystem>
 #include <iostream>
 #include <string>
 #include <limits>
diff --git a/src/Solvers/AMR_MG/AmrMultiGrid.cpp b/src/Solvers/AMR_MG/AmrMultiGrid.cpp
index 2593cd87fdc9505591cb66cb3e3f043f206c11c2..48a4589e4901c7b72e270ff12e9760aa5c1b4d63 100644
--- a/src/Solvers/AMR_MG/AmrMultiGrid.cpp
+++ b/src/Solvers/AMR_MG/AmrMultiGrid.cpp
@@ -22,6 +22,7 @@
 #include "AmrMultiGrid.h"
 
 #include <algorithm>
+#include <filesystem>
 #include <functional>
 #include <map>
 #include <numeric>
diff --git a/src/Structure/BoundaryGeometry.cpp b/src/Structure/BoundaryGeometry.cpp
index 10343d65fe87ad312aa08cf8718af76d3001d3dd..e58d0a4e8485d3939da403f698e1a5dc0e3801e7 100644
--- a/src/Structure/BoundaryGeometry.cpp
+++ b/src/Structure/BoundaryGeometry.cpp
@@ -23,6 +23,7 @@
 #include <algorithm>
 #include <cmath>
 #include <ctime>
+#include <filesystem>
 #include <fstream>
 #include <string>
 
diff --git a/src/Structure/H5PartWrapper.cpp b/src/Structure/H5PartWrapper.cpp
index ac84f85b9aaca8e44e3c8f9941a98fd2e2568863..0b68ae635e46f3a2a6f1a9dda6447ba3377f62ef 100644
--- a/src/Structure/H5PartWrapper.cpp
+++ b/src/Structure/H5PartWrapper.cpp
@@ -15,6 +15,7 @@
 #include "Message/Message.h"
 #include "Utility/PAssert.h"
 
+#include <filesystem>
 #include <fstream>
 
 namespace {
diff --git a/src/Structure/SDDSWriter.h b/src/Structure/SDDSWriter.h
index 2ceadd0ea51e7bf7d0c6167e8e987ccc1d6dd54d..f2903cbdca8c3581fb90597e21e7e6bdea9806ac 100644
--- a/src/Structure/SDDSWriter.h
+++ b/src/Structure/SDDSWriter.h
@@ -29,7 +29,7 @@
 #include <tuple>
 #include <utility>
 #include <vector>
-
+#include <filesystem>
 #include "Structure/SDDSColumn.h"
 #include "Structure/SDDSColumnSet.h"
 
diff --git a/tests/opal_src/BasicActions/DumpEMFieldsTest.cpp b/tests/opal_src/BasicActions/DumpEMFieldsTest.cpp
index daca62a467fdc9f7ff2af6cc71f505ab968bda09..17297db45408427e84887e6059a4b2186921de95 100644
--- a/tests/opal_src/BasicActions/DumpEMFieldsTest.cpp
+++ b/tests/opal_src/BasicActions/DumpEMFieldsTest.cpp
@@ -24,6 +24,7 @@
  *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  *  POSSIBILITY OF SUCH DAMAGE.
  */
+#include <fcilesystem>
 #include <fstream>
 #include <iostream>
 
diff --git a/tests/opal_src/BasicActions/DumpFieldsTest.cpp b/tests/opal_src/BasicActions/DumpFieldsTest.cpp
index 8401469782bc8cd0b16fc7aa84a6ec2e1e7bbc74..777961a1eda955865594f7cfd5ca40068b599849 100644
--- a/tests/opal_src/BasicActions/DumpFieldsTest.cpp
+++ b/tests/opal_src/BasicActions/DumpFieldsTest.cpp
@@ -24,6 +24,7 @@
  *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  *  POSSIBILITY OF SUCH DAMAGE.
  */
+#include <filesystem>
 #include <fstream>
 
 #include "gtest/gtest.h"