Okay, I just fixed the issue with PCV, and partly with PoissonRecon (I asked the author for the right fix for the 'DIMENSION' error).
And I also fixed the libE57 CMake script (there was a wrong 'else' case - 'elseif' was used instead of 'else'). I also simplified the script a little bit. I hope it will fix the issue this time ;)
E57 support in linux [was XERCES not found]
Re: E57 support in linux [was XERCES not found]
Daniel, CloudCompare admin
Re: E57 support in linux [was XERCES not found]
After your changes, the errors in compilation are (note there is still an error related to omp_init_lock(&writelock); in line 433 of Geometry.inl file):daniel wrote:Okay, I just fixed the issue with PCV, and partly with PoissonRecon (I asked the author for the right fix for the 'DIMENSION' error).
And I also fixed the libE57 CMake script (there was a wrong 'else' case - 'elseif' was used instead of 'else'). I also simplified the script a little bit. I hope it will fix the issue this time ;)
Code: Select all
[ 31%] Building CXX object plugins/qPoissonRecon/PoissonReconLib/CMakeFiles/QPOISSON_RECON_LIB.dir/Src_CC_wrap/PoissonReconLib.cpp.o
In file included from /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/Geometry.h:378:0,
from /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/Ply.h:220,
from /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/PoissonReconLib.h:21,
from /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/PoissonReconLib.cpp:18:
/home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/Geometry.inl: In constructor ‘CoredVectorMeshData<Vertex>::CoredVectorMeshData()’:
/home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/Geometry.inl:433:26: error: cannot convert ‘void**’ to ‘omp_lock_t*’ for argument ‘1’ to ‘void omp_init_lock(omp_lock_t*)’
omp_init_lock(&writelock);
^
In file included from /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/PointStream.h:174:0,
from /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/PoissonReconLib.h:23,
from /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/PoissonReconLib.cpp:18:
/home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/PointStream.inl: In member function ‘bool ASCIIOrientedPointStream<Real>::nextPoint(OrientedPoint3D<Real>&)’:
/home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/PointStream.inl:68:12: error: ‘DIMENSION’ was not declared in this scope
float c[2*DIMENSION];
^
/home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/PointStream.inl:69:45: error: ‘c’ was not declared in this scope
if( fscanf( _fp , " %f %f %f %f %f %f " , &c[0] , &c[1] , &c[2] , &c[3] , &c[4] , &c[5] )!=2*DIMENSION ) return false;
^
/home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/PointStream.inl:70:11: error: ‘c’ was not declared in this scope
p.p[0] = c[0] , p.p[1] = c[1] , p.p[2] = c[2];
^
/home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/PointStream.inl: In member function ‘bool ASCIIOrientedPointStreamWithData<Real, Data>::nextPoint(OrientedPoint3D<Real>&, Data&)’:
/home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/PointStream.inl:247:12: error: ‘DIMENSION’ was not declared in this scope
float c[2*DIMENSION];
^
/home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/PointStream.inl:248:45: error: ‘c’ was not declared in this scope
if( fscanf( _fp , " %f %f %f %f %f %f " , &c[0] , &c[1] , &c[2] , &c[3] , &c[4] , &c[5] )!=2*DIMENSION ) return false;
^
/home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/PointStream.inl:249:11: error: ‘c’ was not declared in this scope
p.p[0] = c[0] , p.p[1] = c[1] , p.p[2] = c[2];
^
plugins/qPoissonRecon/PoissonReconLib/CMakeFiles/QPOISSON_RECON_LIB.dir/build.make:54: recipe for target 'plugins/qPoissonRecon/PoissonReconLib/CMakeFiles/QPOISSON_RECON_LIB.dir/Src_CC_wrap/PoissonReconLib.cpp.o' failed
make[2]: *** [plugins/qPoissonRecon/PoissonReconLib/CMakeFiles/QPOISSON_RECON_LIB.dir/Src_CC_wrap/PoissonReconLib.cpp.o] Error 1
CMakeFiles/Makefile2:682: recipe for target 'plugins/qPoissonRecon/PoissonReconLib/CMakeFiles/QPOISSON_RECON_LIB.dir/all' failed
make[1]: *** [plugins/qPoissonRecon/PoissonReconLib/CMakeFiles/QPOISSON_RECON_LIB.dir/all] Error 2
Makefile:116: recipe for target 'all' failed
make: *** [all] Error 2
Re: E57 support in linux [was XERCES not found]
The error referred to omp_init_lock(&writelock); can be fixed using omp_init_lock((omp_lock_t*)(&writelock));jgpallero wrote:After your changes, the errors in compilation are (note there is still an error related to omp_init_lock(&writelock); in line 433 of Geometry.inl file):daniel wrote:Okay, I just fixed the issue with PCV, and partly with PoissonRecon (I asked the author for the right fix for the 'DIMENSION' error).
And I also fixed the libE57 CMake script (there was a wrong 'else' case - 'elseif' was used instead of 'else'). I also simplified the script a little bit. I hope it will fix the issue this time ;)
Code: Select all
[ 31%] Building CXX object plugins/qPoissonRecon/PoissonReconLib/CMakeFiles/QPOISSON_RECON_LIB.dir/Src_CC_wrap/PoissonReconLib.cpp.o In file included from /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/Geometry.h:378:0, from /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/Ply.h:220, from /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/PoissonReconLib.h:21, from /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/PoissonReconLib.cpp:18: /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/Geometry.inl: In constructor ‘CoredVectorMeshData<Vertex>::CoredVectorMeshData()’: /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/Geometry.inl:433:26: error: cannot convert ‘void**’ to ‘omp_lock_t*’ for argument ‘1’ to ‘void omp_init_lock(omp_lock_t*)’ omp_init_lock(&writelock); ^ In file included from /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/PointStream.h:174:0, from /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/PoissonReconLib.h:23, from /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/PoissonReconLib.cpp:18: /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/PointStream.inl: In member function ‘bool ASCIIOrientedPointStream<Real>::nextPoint(OrientedPoint3D<Real>&)’: /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/PointStream.inl:68:12: error: ‘DIMENSION’ was not declared in this scope float c[2*DIMENSION]; ^ /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/PointStream.inl:69:45: error: ‘c’ was not declared in this scope if( fscanf( _fp , " %f %f %f %f %f %f " , &c[0] , &c[1] , &c[2] , &c[3] , &c[4] , &c[5] )!=2*DIMENSION ) return false; ^ /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/PointStream.inl:70:11: error: ‘c’ was not declared in this scope p.p[0] = c[0] , p.p[1] = c[1] , p.p[2] = c[2]; ^ /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/PointStream.inl: In member function ‘bool ASCIIOrientedPointStreamWithData<Real, Data>::nextPoint(OrientedPoint3D<Real>&, Data&)’: /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/PointStream.inl:247:12: error: ‘DIMENSION’ was not declared in this scope float c[2*DIMENSION]; ^ /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/PointStream.inl:248:45: error: ‘c’ was not declared in this scope if( fscanf( _fp , " %f %f %f %f %f %f " , &c[0] , &c[1] , &c[2] , &c[3] , &c[4] , &c[5] )!=2*DIMENSION ) return false; ^ /home/topo/Desktop/trunk/plugins/qPoissonRecon/PoissonReconLib/Src_CC_wrap/../Src/PointStream.inl:249:11: error: ‘c’ was not declared in this scope p.p[0] = c[0] , p.p[1] = c[1] , p.p[2] = c[2]; ^ plugins/qPoissonRecon/PoissonReconLib/CMakeFiles/QPOISSON_RECON_LIB.dir/build.make:54: recipe for target 'plugins/qPoissonRecon/PoissonReconLib/CMakeFiles/QPOISSON_RECON_LIB.dir/Src_CC_wrap/PoissonReconLib.cpp.o' failed make[2]: *** [plugins/qPoissonRecon/PoissonReconLib/CMakeFiles/QPOISSON_RECON_LIB.dir/Src_CC_wrap/PoissonReconLib.cpp.o] Error 1 CMakeFiles/Makefile2:682: recipe for target 'plugins/qPoissonRecon/PoissonReconLib/CMakeFiles/QPOISSON_RECON_LIB.dir/all' failed make[1]: *** [plugins/qPoissonRecon/PoissonReconLib/CMakeFiles/QPOISSON_RECON_LIB.dir/all] Error 2 Makefile:116: recipe for target 'all' failed make: *** [all] Error 2
About the DIMENSION definition, it is defined as #define DIMENSION 3 in trunk/plugins/qPoissonRecon/PoissonReconLib/Src/Octree.h. I've tried to include this file in PointStream.inl, but an error due to multiple definition of a function appears. If DIMENSION is defined again in PointStream.inl, the compilation works without errors (the other errors, those referred to ‘c’ was not declared in this scope, disappear). I think DIMENSION must be 3 also in this part, as we can see in the line
Code: Select all
if( fscanf( _fp , " %f %f %f %f %f %f " , &c[0] , &c[1] , &c[2] , &c[3] , &c[4] , &c[5] )!=2*DIMENSION ) return false;
Re: E57 support in linux [was XERCES not found]
As I said, for the 'DIMENSION' error I was waiting for a fix from the author of PoissonRecon himself ;)
Now it's online (warning: I also switched to a proper submodule for PoissonRecon now that it's on github).
Now it's online (warning: I also switched to a proper submodule for PoissonRecon now that it's on github).
Daniel, CloudCompare admin