I’m attempting to build the MPAS-JEDI bundle outside of a container because of some requirements and I’m encountering errors while doing so.
When the make process gets to OOPS (~58% completion), it terminated with several similar errors:
CMakeFiles/test_assimilation_solvematrixequation.dir/test/assimilation/SolveMatrixEquation.cc.o: In function `eckit::AssertionFailed::~AssertionFailed()’:
/home/user/jedi/mpas-bundle/eckit/src/eckit/exception/Exceptions.h:46: undefined reference to `operator delete(void*, unsigned long)’
Since this operator was introduced with C++14, I have been looking at the C++ versioning angle:
I’m using the Release build option, and I have
-DBUNDLE_SKIP_* turned off, i.e. not skipping eckit etc and compiling them with this process. CXX_STANDARD is set to 14, and I can confirm --c++14 flags are used at least when oops is being compiled. I’m using MPI-wrapped pgcc/pgc++ 19.7
Couple of routes I have attempted to resolve the error:
- eckit is compiled with C++11, but attempts to compile eckit with 14 have been unsuccessful.
- Later versions of eckit also only compiles with C++11 (while also seem to be causing other issues with the bundle)
- Downgrading everything to 11 by setting CMAKE_CXX_STANDARD=11 is also unsuccessful
Any suggestions on what else to try?