Linking problems on Ubuntu 18.04.
Hi, when I'm building gmsh on Ubuntu 18.04. the compilation works fine but the linking fails with undefined references related to OpenCascade. I have both OpenCascade versions installed on the system, the official and the community version, is it possible that things are getting messed up by this?
Thank you!
This is the command:
/usr/bin/mpicxx -fopenmp -std=c++11 -O2 -g -DNDEBUG -rdynamic CMakeFiles/gmsh.dir/Common/Main.cpp.o -o gmsh -Wl,-rpath,/home/skoch9/Repos/gmsh/b1:/usr/lib/x86_64-linux-gnu/openmpi/lib:/usr/local/lib: libgmsh.so.3.0.7 -lfltk_images -lfltk_gl -lfltk -lX11 -ljpeg -lz -lpng -lz /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi_cxx.so /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so -lslepc -lpetsc /usr/local/lib/libTKSTEP.so /usr/local/lib/libTKSTEP209.so /usr/local/lib/libTKSTEPAttr.so /usr/local/lib/libTKSTEPBase.so /usr/local/lib/libTKIGES.so /usr/local/lib/libTKXSBase.so /usr/local/lib/libTKOffset.so /usr/local/lib/libTKFeat.so /usr/local/lib/libTKFillet.so /usr/local/lib/libTKBool.so /usr/local/lib/libTKShHealing.so /usr/local/lib/libTKMesh.so /usr/local/lib/libTKHLR.so /usr/local/lib/libTKBO.so /usr/local/lib/libTKPrim.so /usr/local/lib/libTKTopAlgo.so /usr/local/lib/libTKGeomAlgo.so /usr/local/lib/libTKBRep.so /usr/local/lib/libTKGeomBase.so /usr/local/lib/libTKG3d.so /usr/local/lib/libTKG2d.so /usr/local/lib/libTKMath.so /usr/local/lib/libTKernel.so -ldl -lGL -lGLU -llapack -lblas -lpthread -lrt -lpng /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi_cxx.so /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so -lslepc -lpetsc /usr/local/lib/libTKSTEP.so /usr/local/lib/libTKSTEP209.so /usr/local/lib/libTKSTEPAttr.so /usr/local/lib/libTKSTEPBase.so /usr/local/lib/libTKIGES.so /usr/local/lib/libTKXSBase.so /usr/local/lib/libTKOffset.so /usr/local/lib/libTKFeat.so /usr/local/lib/libTKFillet.so /usr/local/lib/libTKBool.so /usr/local/lib/libTKShHealing.so /usr/local/lib/libTKMesh.so /usr/local/lib/libTKHLR.so /usr/local/lib/libTKBO.so /usr/local/lib/libTKPrim.so /usr/local/lib/libTKTopAlgo.so /usr/local/lib/libTKGeomAlgo.so /usr/local/lib/libTKBRep.so /usr/local/lib/libTKGeomBase.so /usr/local/lib/libTKG3d.so /usr/local/lib/libTKG2d.so /usr/local/lib/libTKMath.so /usr/local/lib/libTKernel.so -ldl -lGL -lGLU -llapack -lblas -lpthread -lrt
And the undefined references:
libgmsh.so.3.0.7: undefined reference to
ShapeFix_Shape::Perform(opencascade::handle<Message_ProgressIndicator> const&)'
libgmsh.so.3.0.7: undefined reference to BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(opencascade::handle<Geom_Surface> const&, TopoDS_Wire const&, bool)' libgmsh.so.3.0.7: undefined reference to
BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(opencascade::handle<Geom_Curve> const&)'
libgmsh.so.3.0.7: undefined reference to Geom_Conic::get_type_descriptor()' libgmsh.so.3.0.7: undefined reference to
vtable for Extrema_FuncPSNorm'
libgmsh.so.3.0.7: undefined reference to BRepBuilderAPI_MakeShape::operator TopoDS_Shape()' libgmsh.so.3.0.7: undefined reference to
GeomAPI_ProjectPointOnCurve::GeomAPI_ProjectPointOnCurve(gp_Pnt const&, opencascade::handle<Geom_Curve> const&, double, double)'
libgmsh.so.3.0.7: undefined reference to Geom_Parabola::get_type_descriptor()' libgmsh.so.3.0.7: undefined reference to
BRepTools::Read(TopoDS_Shape&, char const*, BRep_Builder const&, opencascade::handle<Message_ProgressIndicator> const&)'
libgmsh.so.3.0.7: undefined reference to GeomAdaptor_Surface::UIntervals(NCollection_Array1<double>&, GeomAbs_Shape) const' libgmsh.so.3.0.7: undefined reference to
Geom_BSplineCurve::Weights(NCollection_Array1&) const'
libgmsh.so.3.0.7: undefined reference to Geom_Plane::get_type_descriptor()' libgmsh.so.3.0.7: undefined reference to
BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(opencascade::handle<Geom_Curve> const&, TopoDS_Vertex const&, TopoDS_Vertex const&)'
libgmsh.so.3.0.7: undefined reference to Geom_SphericalSurface::get_type_descriptor()' libgmsh.so.3.0.7: undefined reference to
BRepOffsetAPI_MakeThickSolid::BRepOffsetAPI_MakeThickSolid(TopoDS_Shape const&, NCollection_List<TopoDS_Shape> const&, double, double, BRepOffset_Mode, bool, bool, GeomAbs_JoinType, bool)'
libgmsh.so.3.0.7: undefined reference to Standard_Failure::GetMessageString() const' libgmsh.so.3.0.7: undefined reference to
Geom_BezierSurface::get_type_descriptor()'
libgmsh.so.3.0.7: undefined reference to Geom2dLProp_CLProps2d::Geom2dLProp_CLProps2d(opencascade::handle<Geom2d_Curve> const&, int, double)' libgmsh.so.3.0.7: undefined reference to
BRepBuilderAPI_MakeVertex::operator TopoDS_Vertex()'
libgmsh.so.3.0.7: undefined reference to Geom_Circle::get_type_descriptor()' libgmsh.so.3.0.7: undefined reference to
BRepBuilderAPI_MakeWire::operator TopoDS_Wire()'
libgmsh.so.3.0.7: undefined reference to GeomAdaptor_Curve::Intervals(NCollection_Array1<double>&, GeomAbs_Shape) const' libgmsh.so.3.0.7: undefined reference to
BRepBuilderAPI_MakeEdge::operator TopoDS_Edge()'
libgmsh.so.3.0.7: undefined reference to BOPAlgo_Options::SetFuzzyValue(double)' libgmsh.so.3.0.7: undefined reference to
BRepGProp::LinearProperties(TopoDS_Shape const&, GProp_GProps&, bool)'
libgmsh.so.3.0.7: undefined reference to Standard_Transient::IncrementRefCounter() const' libgmsh.so.3.0.7: undefined reference to
Geom_BSplineCurve::Knots(NCollection_Array1&) const'
libgmsh.so.3.0.7: undefined reference to BRepMesh_FastDiscret::BRepMesh_FastDiscret(Bnd_Box const&, BRepMesh_FastDiscret::Parameters const&)' libgmsh.so.3.0.7: undefined reference to
GeomAPI_ProjectPointOnSurf::GeomAPI_ProjectPointOnSurf(gp_Pnt const&, opencascade::handle<Geom_Surface> const&, double, double, double, double, Extrema_ExtAlgo)'
libgmsh.so.3.0.7: undefined reference to Geom_BezierCurve::Geom_BezierCurve(NCollection_Array1<gp_Pnt> const&)' libgmsh.so.3.0.7: undefined reference to
GeomAPI_Interpolate::GeomAPI_Interpolate(opencascade::handle<TColgp_HArray1OfPnt> const&, bool, double)'
libgmsh.so.3.0.7: undefined reference to Geom_BSplineCurve::Poles(NCollection_Array1<gp_Pnt>&) const' libgmsh.so.3.0.7: undefined reference to
BRepAlgoAPI_BuilderAlgo::SetArguments(NCollection_List<TopoDS_Shape> const&)'
libgmsh.so.3.0.7: undefined reference to Standard_OutOfMemory::Standard_OutOfMemory(char const*)' libgmsh.so.3.0.7: undefined reference to
BRepAdaptor_Surface::VIntervals(NCollection_Array1&, GeomAbs_Shape) const'
libgmsh.so.3.0.7: undefined reference to BRepBuilderAPI_Sewing::Perform(opencascade::handle<Message_ProgressIndicator> const&)' libgmsh.so.3.0.7: undefined reference to
BRepTools::Write(TopoDS_Shape const&, char const*, opencascade::handle<Message_ProgressIndicator> const&)'
libgmsh.so.3.0.7: undefined reference to ShapeFix_Solid::Perform(opencascade::handle<Message_ProgressIndicator> const&)' libgmsh.so.3.0.7: undefined reference to
BRepAdaptor_Surface::UIntervals(NCollection_Array1&, GeomAbs_Shape) const'
libgmsh.so.3.0.7: undefined reference to Geom_TrimmedCurve::Geom_TrimmedCurve(opencascade::handle<Geom_Curve> const&, double, double, bool, bool)' libgmsh.so.3.0.7: undefined reference to
BRepBuilderAPI_MakeSolid::Solid()'
libgmsh.so.3.0.7: undefined reference to Geom_TrimmedCurve::get_type_descriptor()' libgmsh.so.3.0.7: undefined reference to
Standard_Type::Register(char const*, char const*, unsigned long, opencascade::handle<Standard_Type> const&)'
libgmsh.so.3.0.7: undefined reference to BRepAlgoAPI_BooleanOperation::SetTools(NCollection_List<TopoDS_Shape> const&)' libgmsh.so.3.0.7: undefined reference to
Geom_ToroidalSurface::get_type_descriptor()'
libgmsh.so.3.0.7: undefined reference to Geom_Line::get_type_descriptor()' libgmsh.so.3.0.7: undefined reference to
TopoDS_Builder::MakeShape(TopoDS_Shape&, opencascade::handle<TopoDS_TShape> const&) const'
libgmsh.so.3.0.7: undefined reference to BRepGProp::SurfaceProperties(TopoDS_Shape const&, GProp_GProps&, bool)' libgmsh.so.3.0.7: undefined reference to
Geom_BezierCurve::get_type_descriptor()'
libgmsh.so.3.0.7: undefined reference to GeomAdaptor_Surface::VIntervals(NCollection_Array1<double>&, GeomAbs_Shape) const' libgmsh.so.3.0.7: undefined reference to
Geom_BSplineSurface::get_type_descriptor()'
libgmsh.so.3.0.7: undefined reference to NCollection_BaseMap::Destroy(void (*)(NCollection_ListNode*, opencascade::handle<NCollection_BaseAllocator>&), bool)' libgmsh.so.3.0.7: undefined reference to
Geom_BSplineCurve::get_type_descriptor()'
libgmsh.so.3.0.7: undefined reference to Geom_BSplineCurve::Multiplicities(NCollection_Array1<int>&) const' libgmsh.so.3.0.7: undefined reference to
BRepBuilderAPI_MakeEdge::Edge()'
libgmsh.so.3.0.7: undefined reference to Geom_BSplineCurve::Geom_BSplineCurve(NCollection_Array1<gp_Pnt> const&, NCollection_Array1<double> const&, NCollection_Array1<double> const&, NCollection_Array1<int> const&, int, bool, bool)' libgmsh.so.3.0.7: undefined reference to
BRepBuilderAPI_MakeWire::Wire()'
libgmsh.so.3.0.7: undefined reference to Geom_SurfaceOfRevolution::get_type_descriptor()' libgmsh.so.3.0.7: undefined reference to
GeomAdaptor_Curve::OffsetCurve() const'
libgmsh.so.3.0.7: undefined reference to Geom_Hyperbola::get_type_descriptor()' libgmsh.so.3.0.7: undefined reference to
ShapeFix_Shell::Perform(opencascade::handle<Message_ProgressIndicator> const&)'
libgmsh.so.3.0.7: undefined reference to Standard_Transient::DecrementRefCounter() const' libgmsh.so.3.0.7: undefined reference to
Geom_Ellipse::get_type_descriptor()'
libgmsh.so.3.0.7: undefined reference to BRepBuilderAPI_MakeShape::Shape()' libgmsh.so.3.0.7: undefined reference to
BRepBuilderAPI_MakeVertex::Vertex()'
libgmsh.so.3.0.7: undefined reference to NCollection_BaseList::PClear(void (*)(NCollection_ListNode*, opencascade::handle<NCollection_BaseAllocator>&))' libgmsh.so.3.0.7: undefined reference to
Geom_CylindricalSurface::get_type_descriptor()'
libgmsh.so.3.0.7: undefined reference to BRepAlgoAPI_Algo::Shape()' libgmsh.so.3.0.7: undefined reference to
Geom_OffsetCurve::get_type_descriptor()'
libgmsh.so.3.0.7: undefined reference to NCollection_BaseSequence::ClearSeq(void (*)(NCollection_SeqNode*, opencascade::handle<NCollection_BaseAllocator>&))' libgmsh.so.3.0.7: undefined reference to
Geom_ConicalSurface::get_type_descriptor()'`