OpenCascade tutorial-failure to run with C++

Hello, I am very new to Opencascade and with less knowledge of programming. I try to run the following programme from Opencascade documentation and not successful. I note down also the error. Would please give me the correction or put me online!

#include
#include
#include
#include
void EdgeTest();
int main()
{
gp_Pnt P1(10,0,0), P2(20,0,0);

TopoDS_Edge E = BRepBuilderAPI_MakeEdge(P1,P2);
return 0;
}

void EdgeTest()
{
gp_Pnt P1;
gp_Pnt P2;
BRepBuilderAPI_MakeEdge ME(P1,P2);
if (!ME.IsDone())
{
// doing ME.Edge() or E = ME here
// would raise StdFail_NotDone
Standard_DomainError::Raise("ProcessPoints::Failed to createan edge");
}
TopoDS_Edge E = ME;
}

Error message

**** Build of configuration Debug for project opencascade ****

make all
Building file: ../src/opencascade.cpp
Invoking: GCC C++ Compiler
g++ -I/usr/include/opencascade -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/opencascade.d" -MT"src/opencascade.d" -o"src/opencascade.o" "../src/opencascade.cpp"
Finished building: ../src/opencascade.cpp

Building target: opencascade
Invoking: GCC C++ Linker
g++ -L/usr/lib -o"opencascade" ./src/opencascade.o -ltk -ltcl -lGL -ltbb -lXmu -lftgl -lgl2ps
./src/opencascade.o: In function `main':
/home/de052/workspace/example/opencascade/Debug/../src/opencascade.cpp:25: undefined reference to `BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(gp_Pnt const&, gp_Pnt const&)'
/home/de052/workspace/example/opencascade/Debug/../src/opencascade.cpp:25: undefined reference to `BRepBuilderAPI_MakeEdge::operator TopoDS_Edge() const'
./src/opencascade.o: In function `EdgeTest()':
/home/de052/workspace/example/opencascade/Debug/../src/opencascade.cpp:34: undefined reference to `BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(gp_Pnt const&, gp_Pnt const&)'
/home/de052/workspace/example/opencascade/Debug/../src/opencascade.cpp:35: undefined reference to `BRepBuilderAPI_MakeEdge::IsDone() const'
/home/de052/workspace/example/opencascade/Debug/../src/opencascade.cpp:39: undefined reference to `Standard_DomainError::Raise(char const*)'
/home/de052/workspace/example/opencascade/Debug/../src/opencascade.cpp:41: undefined reference to `BRepBuilderAPI_MakeEdge::operator TopoDS_Edge() const'
./src/opencascade.o: In function `~Handle_Standard_Transient':
/usr/include/opencascade/Handle_Standard_Transient.hxx:71: undefined reference to `Handle_Standard_Transient::EndScope()'
./src/opencascade.o: In function `~TopLoc_SListOfItemLocation':
/usr/include/opencascade/TopLoc_SListOfItemLocation.hxx:86: undefined reference to `TopLoc_SListOfItemLocation::Clear()'
./src/opencascade.o: In function `~TopTools_ListOfShape':
/usr/include/opencascade/TopTools_ListOfShape.hxx:88: undefined reference to `TopTools_ListOfShape::Clear()'
./src/opencascade.o: In function `BRepLib_Command::operator delete(void*)':
/usr/include/opencascade/BRepLib_Command.hxx:61: undefined reference to `Standard::Free(void*&)'
./src/opencascade.o: In function `~BRepLib_Command':
/usr/include/opencascade/BRepLib_Command.hxx:68: undefined reference to `vtable for BRepLib_Command'
/usr/include/opencascade/BRepLib_Command.hxx:68: undefined reference to `BRepLib_Command::Delete()'
./src/opencascade.o: In function `BRepLib_MakeShape::operator delete(void*)':
/usr/include/opencascade/BRepLib_MakeShape.hxx:76: undefined reference to `Standard::Free(void*&)'
./src/opencascade.o: In function `BRepLib_MakeEdge::operator delete(void*)':
/usr/include/opencascade/BRepLib_MakeEdge.hxx:112: undefined reference to `Standard::Free(void*&)'
./src/opencascade.o: In function `BRepBuilderAPI_Command::operator delete(void*)':
/usr/include/opencascade/BRepBuilderAPI_Command.hxx:61: undefined reference to `Standard::Free(void*&)'
./src/opencascade.o: In function `~BRepBuilderAPI_Command':
/usr/include/opencascade/BRepBuilderAPI_Command.hxx:68: undefined reference to `vtable for BRepBuilderAPI_Command'
/usr/include/opencascade/BRepBuilderAPI_Command.hxx:68: undefined reference to `BRepBuilderAPI_Command::Delete()'
./src/opencascade.o: In function `BRepBuilderAPI_MakeShape::operator delete(void*)':
/usr/include/opencascade/BRepBuilderAPI_MakeShape.hxx:68: undefined reference to `Standard::Free(void*&)'
./src/opencascade.o: In function `~BRepBuilderAPI_MakeShape':
/usr/include/opencascade/BRepBuilderAPI_MakeShape.hxx:75: undefined reference to `vtable for BRepBuilderAPI_MakeShape'
/usr/include/opencascade/BRepBuilderAPI_MakeShape.hxx:75: undefined reference to `BRepBuilderAPI_MakeShape::Delete()'
./src/opencascade.o: In function `BRepBuilderAPI_MakeEdge::operator delete(void*)':
/usr/include/opencascade/BRepBuilderAPI_MakeEdge.hxx:115: undefined reference to `Standard::Free(void*&)'
./src/opencascade.o: In function `~BRepLib_MakeShape':
/usr/include/opencascade/BRepLib_MakeShape.hxx:62: undefined reference to `vtable for BRepLib_MakeShape'
./src/opencascade.o: In function `~BRepBuilderAPI_MakeEdge':
/usr/include/opencascade/BRepBuilderAPI_MakeEdge.hxx:101: undefined reference to `vtable for BRepBuilderAPI_MakeEdge'
./src/opencascade.o:(.rodata._ZTV16BRepLib_MakeEdge[vtable for BRepLib_MakeEdge]+0x10): undefined reference to `BRepLib_Command::Delete()'
./src/opencascade.o:(.rodata._ZTV16BRepLib_MakeEdge[vtable for BRepLib_MakeEdge]+0x28): undefined reference to `BRepLib_MakeShape::FaceStatus(TopoDS_Face const&) const'
./src/opencascade.o:(.rodata._ZTV16BRepLib_MakeEdge[vtable for BRepLib_MakeEdge]+0x30): undefined reference to `BRepLib_MakeShape::HasDescendants(TopoDS_Face const&) const'
./src/opencascade.o:(.rodata._ZTV16BRepLib_MakeEdge[vtable for BRepLib_MakeEdge]+0x38): undefined reference to `BRepLib_MakeShape::DescendantFaces(TopoDS_Face const&)'
./src/opencascade.o:(.rodata._ZTV16BRepLib_MakeEdge[vtable for BRepLib_MakeEdge]+0x40): undefined reference to `BRepLib_MakeShape::NbSurfaces() const'
./src/opencascade.o:(.rodata._ZTV16BRepLib_MakeEdge[vtable for BRepLib_MakeEdge]+0x48): undefined reference to `BRepLib_MakeShape::NewFaces(int)'
./src/opencascade.o:(.rodata._ZTV16BRepLib_MakeEdge[vtable for BRepLib_MakeEdge]+0x50): undefined reference to `BRepLib_MakeShape::FacesFromEdges(TopoDS_Edge const&)'
./src/opencascade.o:(.rodata._ZTI16BRepLib_MakeEdge[typeinfo for BRepLib_MakeEdge]+0x10): undefined reference to `typeinfo for BRepLib_MakeShape'
collect2: ld returned 1 exit status
make: *** [opencascade] Error 1

Denis Barbier's picture

Hello, your executable must be linked against OCC libraries.
Your command line
g++ -L/usr/lib -o"opencascade" ./src/opencascade.o -ltk -ltcl -lGL -ltbb -lXmu -lftgl -lgl2ps
should have been
g++ -L/usr/lib -o"opencascade" ./src/opencascade.o -lTKTopAlgo -lTKBRep -lTKernel -ltk -ltcl -lGL -ltbb -lXmu -lftgl -lgl2ps

Game Milky's picture

Thank you very much, the problem is successfully solved! And the program is running with out problem now! But still i need your help as am new to opencascade!
How and where to display the drawing?
The programming is running with no error but i can't see any output!
Thank you for sharing your time and looking at my problem,

Thanks

Game