Compilation error in src/libbg/spsr/SPSR.cpp
Trying to compile brlcad on FreeBSD with clang-19 fails with these errors:
```
FAILED: src/libbg/CMakeFiles/libbg-obj.dir/spsr/SPSR.cpp.o
/usr/bin/c++ -DBG_DLL_EXPORTS -DBRLCADBUILD -DEIGEN_DONT_VECTORIZE -DHAVE_CONFIG_H -I/usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/include -I/usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/include/brlcad -isystem /usr/local/include/eigen3 -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -isystem /usr/local/include -std=c++17 -D_XOPEN_SOURCE=700 -pipe -fvisibility=hidden -fno-strict-aliasing -fno-common -fexceptions -ftemplate-depth-128 -m64 -g -ggdb3 -Qunused-arguments -O3 -finline-functions -flto -fno-omit-frame-pointer -pedantic -Wall -Wextra -Wundef -Wfloat-equal -Wshadow -Wbad-function-cast -Winline -Wno-long-long -Wno-variadic-macros -Wdocumentation -std=c++17 -fPIC -MD -MT src/libbg/CMakeFiles/libbg-obj.dir/spsr/SPSR.cpp.o -MF src/libbg/CMakeFiles/libbg-obj.dir/spsr/SPSR.cpp.o.d -o src/libbg/CMakeFiles/libbg-obj.dir/spsr/SPSR.cpp.o -c /usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/src/libbg/spsr/SPSR.cpp
In file included from /usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/src/libbg/spsr/SPSR.cpp:71:
In file included from /usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/src/libbg/spsr/Octree.h:290:
/usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/src/libbg/spsr/Octree.inl:759:35: error: no member named 'center' in 'OctNode<NodeData>'
759 | temp=SquareDistance(children[i].center,p);
| ~~~~~~~~~~~ ^
/usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/src/libbg/spsr/Octree.inl:819:8: error: reference to non-static member function must be called
819 | this->depth = node.depth;
| ~~~~~~^~~~~
/usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/src/libbg/spsr/Octree.inl:820:33: error: no member named 'offset' in 'OctNode<NodeData>'
820 | for(i=0;i<DIMENSION;i++){this->offset[i] = node.offset[i];}
| ~~~~ ^
/usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/src/libbg/spsr/Octree.inl:829:43: error: reference to non-static member function must be called
829 | return ((const OctNode< NodeData >*)v1)->depth-((const OctNode< NodeData >*)v2)->depth;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/src/libbg/spsr/Octree.inl:836:10: error: no member named 'd' in 'OctNode<NodeData>'
836 | if( n1->d!=n2->d ) return int(n1->d)-int(n2->d);
| ~~ ^
/usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/src/libbg/spsr/Octree.inl:836:17: error: no member named 'd' in 'OctNode<NodeData>'
836 | if( n1->d!=n2->d ) return int(n1->d)-int(n2->d);
| ~~ ^
/usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/src/libbg/spsr/Octree.inl:836:36: error: no member named 'd' in 'OctNode<NodeData>'
836 | if( n1->d!=n2->d ) return int(n1->d)-int(n2->d);
| ~~ ^
/usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/src/libbg/spsr/Octree.inl:836:47: error: no member named 'd' in 'OctNode<NodeData>'
836 | if( n1->d!=n2->d ) return int(n1->d)-int(n2->d);
| ~~ ^
/usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/src/libbg/spsr/Octree.inl:837:15: error: no member named 'off' in 'OctNode<NodeData>'
837 | else if( n1->off[0]!=n2->off[0] ) return int(n1->off[0]) - int(n2->off[0]);
| ~~ ^
/usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/src/libbg/spsr/Octree.inl:837:27: error: no member named 'off' in 'OctNode<NodeData>'
837 | else if( n1->off[0]!=n2->off[0] ) return int(n1->off[0]) - int(n2->off[0]);
| ~~ ^
/usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/src/libbg/spsr/Octree.inl:837:51: error: no member named 'off' in 'OctNode<NodeData>'
837 | else if( n1->off[0]!=n2->off[0] ) return int(n1->off[0]) - int(n2->off[0]);
| ~~ ^
/usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/src/libbg/spsr/Octree.inl:837:69: error: no member named 'off' in 'OctNode<NodeData>'
837 | else if( n1->off[0]!=n2->off[0] ) return int(n1->off[0]) - int(n2->off[0]);
| ~~ ^
/usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/src/libbg/spsr/Octree.inl:838:15: error: no member named 'off' in 'OctNode<NodeData>'
838 | else if( n1->off[1]!=n2->off[1] ) return int(n1->off[1]) - int(n2->off[1]);
| ~~ ^
/usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/src/libbg/spsr/Octree.inl:838:27: error: no member named 'off' in 'OctNode<NodeData>'
838 | else if( n1->off[1]!=n2->off[1] ) return int(n1->off[1]) - int(n2->off[1]);
| ~~ ^
/usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/src/libbg/spsr/Octree.inl:838:51: error: no member named 'off' in 'OctNode<NodeData>'
838 | else if( n1->off[1]!=n2->off[1] ) return int(n1->off[1]) - int(n2->off[1]);
| ~~ ^
/usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/src/libbg/spsr/Octree.inl:838:69: error: no member named 'off' in 'OctNode<NodeData>'
838 | else if( n1->off[1]!=n2->off[1] ) return int(n1->off[1]) - int(n2->off[1]);
| ~~ ^
/usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/src/libbg/spsr/Octree.inl:839:15: error: no member named 'off' in 'OctNode<NodeData>'
839 | else if( n1->off[2]!=n2->off[2] ) return int(n1->off[2]) - int(n2->off[2]);
| ~~ ^
/usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/src/libbg/spsr/Octree.inl:839:27: error: no member named 'off' in 'OctNode<NodeData>'
839 | else if( n1->off[2]!=n2->off[2] ) return int(n1->off[2]) - int(n2->off[2]);
| ~~ ^
/usr/ports/cad/brlcad/work/brlcad-rel-7-40-2/src/libbg/spsr/Octree.inl:839:51: error: no member named 'off' in 'OctNode<NodeData>'
839 | else if( n1->off[2]!=n2->off[2] ) return int(n1->off[2]) - int(n2->off[2]);
| ~~ ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
```
关闭于 2025-09-21 9 条评论