If I change to libstdc++, I get a different set of errors:
clang++ -std=c++11 -stdlib=libstdc++ -I/usr/local/include/opencascade -I/usr/include -ggdb3 -c -o main.o main.cpp -static
clang++ -std=c++11 -stdlib=libstdc++ -L/usr/local/lib -L/usr/lib -L/usr/local/include/opencascade -lTKBRep -lTKG2d -lTKG3d -lTKGeomBase -lTKMath -lTKMesh -lTKSTEP -lTKSTEP209 -lTKTopAlgo -lTKSTEPAttr -lTKSTEPBase -lTKSTL -lTKXSBase -lTKernel -o step2stl main.o -staticgives:
main.o: In function `step2stl(char*, char*)':
/mnt/c/converters/step2stl/test/main.cpp:24: undefined reference to `STEPControl_Reader::STEPControl_Reader()'
/mnt/c/converters/step2stl/test/main.cpp:25: undefined reference to `XSControl_Reader::ReadFile(char const*)'
/mnt/c/converters/step2stl/test/main.cpp:27: undefined reference to `STEPControl_Reader::NbRootsForTransfer()'
/mnt/c/converters/step2stl/test/main.cpp:28: undefined reference to `XSControl_Reader::TransferRoots()'
/mnt/c/converters/step2stl/test/main.cpp:29: undefined reference to `XSControl_Reader::OneShape() const'
/mnt/c/converters/step2stl/test/main.cpp:38: undefined reference to `GProp_GProps::GProp_GProps()'
/mnt/c/converters/step2stl/test/main.cpp:39: undefined reference to `BRepGProp::VolumeProperties(TopoDS_Shape const&, GProp_GProps&, bool, bool, bool)'
/mnt/c/converters/step2stl/test/main.cpp:40: undefined reference to `GProp_GProps::Mass() const'
/mnt/c/converters/step2stl/test/main.cpp:43: undefined reference to `Bnd_Box::Bnd_Box()'
/mnt/c/converters/step2stl/test/main.cpp:45: undefined reference to `BRepBndLib::Add(TopoDS_Shape const&, Bnd_Box&, bool)'
/mnt/c/converters/step2stl/test/main.cpp:46: undefined reference to `Bnd_Box::Get(double&, double&, double&, double&, double&, double&) const'
/mnt/c/converters/step2stl/test/main.cpp:68: undefined reference to `StlAPI_Writer::StlAPI_Writer()'
/mnt/c/converters/step2stl/test/main.cpp:72: undefined reference to `BRepMesh_IncrementalMesh::BRepMesh_IncrementalMesh(TopoDS_Shape const&, double, bool, double, bool)'
/mnt/c/converters/step2stl/test/main.cpp:74: undefined reference to `BRepMesh_IncrementalMesh::Perform()'
/mnt/c/converters/step2stl/test/main.cpp:76: undefined reference to `StlAPI_Writer::Write(TopoDS_Shape const&, char const*)'
/mnt/c/converters/step2stl/test/main.cpp:79: undefined reference to `BRepMesh_IncrementalMesh::~BRepMesh_IncrementalMesh()'
/mnt/c/converters/step2stl/test/main.cpp:79: undefined reference to `BRepMesh_IncrementalMesh::~BRepMesh_IncrementalMesh()'
main.o: In function `opencascade::handle<TopLoc_SListNodeOfItemLocation>::EndScope()':
/usr/local/include/opencascade/Standard_Handle.hxx:393: undefined reference to `Standard_Transient::DecrementRefCounter() const'
main.o: In function `opencascade::handle<TopoDS_TShape>::EndScope()':
/usr/local/include/opencascade/Standard_Handle.hxx:393: undefined reference to `Standard_Transient::DecrementRefCounter() const'
main.o: In function `~XSControl_Reader':
/usr/local/include/opencascade/XSControl_Reader.hxx:91: undefined reference to `vtable for XSControl_Reader'
main.o: In function `NCollection_Sequence<TopoDS_Shape>::Clear(opencascade::handle<NCollection_BaseAllocator> const&)':
/usr/local/include/opencascade/NCollection_Sequence.hxx:170: undefined reference to `NCollection_BaseSequence::ClearSeq(void (*)(NCollection_SeqNode*, opencascade::handle<NCollection_BaseAllocator>&))'
main.o: In function `opencascade::handle<NCollection_BaseAllocator>::EndScope()':
/usr/local/include/opencascade/Standard_Handle.hxx:393: undefined reference to `Standard_Transient::DecrementRefCounter() const'
main.o: In function `opencascade::handle<NCollection_BaseAllocator>::BeginScope()':
/usr/local/include/opencascade/Standard_Handle.hxx:387: undefined reference to `Standard_Transient::IncrementRefCounter() const'
main.o: In function `NCollection_BaseSequence::operator delete(void*)':
/usr/local/include/opencascade/NCollection_BaseSequence.hxx:53: undefined reference to `Standard::Free(void*)'
main.o: In function `opencascade::handle<XSControl_WorkSession>::EndScope()':
/usr/local/include/opencascade/Standard_Handle.hxx:393: undefined reference to `Standard_Transient::DecrementRefCounter() const'
main.o: In function `NCollection_Sequence<opencascade::handle<Standard_Transient> >::Clear(opencascade::handle<NCollection_BaseAllocator> const&)':
/usr/local/include/opencascade/NCollection_Sequence.hxx:170: undefined reference to `NCollection_BaseSequence::ClearSeq(void (*)(NCollection_SeqNode*, opencascade::handle<NCollection_BaseAllocator>&))'
main.o: In function `opencascade::handle<Standard_Transient>::EndScope()':
/usr/local/include/opencascade/Standard_Handle.hxx:393: undefined reference to `Standard_Transient::DecrementRefCounter() const'
clang: error: linker command failed with exit code 1 (use -v to see invocation)Now it seems to have a linking issue with the occ libs or header files??