Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Build is broken with MFEM #15

Open
yurivict opened this issue Aug 24, 2022 · 0 comments
Open

Build is broken with MFEM #15

yurivict opened this issue Aug 24, 2022 · 0 comments

Comments

@yurivict
Copy link

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.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant