Skip to content

Build is broken with MFEM #15

@yurivict

Description

@yurivict

When MFEM_DIR is set it breaks:

ld: error: undefined symbol: mfem::DenseMatrix::DenseMatrix(int)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(quat2rot(mfem::Vector const&))
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(MatrixElementPiecewiseCoefficient::Eval(mfem::DenseMatrix&, mfem::ElementTransformation&, mfem::IntegrationPoint const&))

ld: error: undefined symbol: mfem::GridFunction::GridFunction(mfem::Mesh*, std::__1::basic_istream<char, std::__1::char_traits<char> >&)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(ecg_readGF(object_st*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, mfem::Mesh*, std::__1::shared_ptr<mfem::GridFunction>&))

ld: error: undefined symbol: mfem::Mesh::Mesh(char const*, int, int, bool)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(ecg_readMeshptr(object_st*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >))

ld: error: undefined symbol: mfem::Mesh::GeneratePartitioning(int, int)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)

ld: error: undefined symbol: mfem::ParMesh::ParMesh(int, mfem::Mesh&, int*, int)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)

ld: error: undefined symbol: mfem::H1_FECollection::H1_FECollection(int, int, int)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)

ld: error: undefined symbol: mfem::ParFiniteElementSpace::ParFiniteElementSpace(mfem::ParMesh*, mfem::FiniteElementCollection const*, int, int)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)

ld: error: undefined symbol: mfem::MemoryManager::host_mem_type
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)
>>> referenced 10 more times

ld: error: undefined symbol: mfem::Array<int>::Max() const
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)

ld: error: undefined symbol: mfem::MemoryManager::New_(void*, unsigned long, mfem::MemoryType, unsigned int&)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(mfem::GridFunction::GridFunction(mfem::FiniteElementSpace*))
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(MatrixElementPiecewiseCoefficient::Eval(mfem::DenseMatrix&, mfem::ElementTransformation&, mfem::IntegrationPoint const&))
>>> referenced 1 more times

ld: error: undefined symbol: mfem::MemoryManager::Delete_(void*, mfem::MemoryType, unsigned int)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)
>>> referenced 20 more times

ld: error: undefined symbol: vtable for mfem::ParGridFunction
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(mfem::ParBilinearForm::ParBilinearForm(mfem::ParFiniteElementSpace*))
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(mfem::ParGridFunction::~ParGridFunction())
>>> the vtable symbol may be undefined because the class is missing its key function (see https://lld.llvm.org/missingkeyfunction)

ld: error: undefined symbol: mfem::GridFunction::operator=(double)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)

ld: error: undefined symbol: mfem::ParGridFunction::ParGridFunction(mfem::ParMesh*, mfem::GridFunction const*, int const*)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)

ld: error: undefined symbol: mfem::Vector::Vector(mfem::Vector const&)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)

ld: error: undefined symbol: mfem::Vector::operator+=(mfem::Vector const&)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)

ld: error: undefined symbol: mfem::Vector::operator=(mfem::Vector const&)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)

ld: error: undefined symbol: mfem::BilinearForm::AddDomainIntegrator(mfem::BilinearFormIntegrator*)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)

ld: error: undefined symbol: mfem::ParBilinearForm::Assemble(int)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)

ld: error: undefined symbol: mfem::HypreParMatrix::HypreParMatrix()
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)
>>> referenced by ecg.cpp
>>>               ecg/CMakeFiles/ecg.dir/ecg.cpp.o:(main)

ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)

It is also unclear why does it need MFEM sources instead of MFEM being installed from the package.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions