Hello! First of all thank you for your contribution to the community。
I'm having trouble compiling Thirdparty. It seems that an error occurred while compiling "voxblox". Is it because some libraries are missing? The error message is as follows:
Configuring and building Thirdparty/voxblox ...
Build type: Release
-- Using system protobuf
-- -- creating symbolic links for headers
SRCDIRS: /home/river/plvs/Thirdparty/voxblox/include /home/river/plvs/Thirdparty/voxblox/minkindr/include
DIR: /home/river/plvs/Thirdparty/voxblox/include
ln: '/home/river/plvs/Thirdparty/voxblox/include/voxblox' 与'/home/river/plvs/Thirdparty/voxblox/include/voxblox' 为同一文件
DIR: /home/river/plvs/Thirdparty/voxblox/minkindr/include
-- Configuring done
-- Generating done
-- Build files have been written to: /home/river/plvs/Thirdparty/voxblox/build
[ 17%] Built target voxblox_proto
[ 25%] Building CXX object CMakeFiles/voxblox.dir/src/core/block.cc.o
[ 25%] Building CXX object CMakeFiles/voxblox.dir/src/core/esdf_map.cc.o
[ 28%] Building CXX object CMakeFiles/voxblox.dir/src/core/tsdf_map.cc.o
[ 32%] Building CXX object CMakeFiles/voxblox.dir/src/integrator/esdf_integrator.cc.o
[ 35%] Building CXX object CMakeFiles/voxblox.dir/src/integrator/esdf_occ_integrator.cc.o
[ 39%] Building CXX object CMakeFiles/voxblox.dir/src/integrator/tsdf_integrator.cc.o
[ 42%] Building CXX object CMakeFiles/voxblox.dir/src/io/sdf_ply.cc.o
[ 46%] Building CXX object CMakeFiles/voxblox.dir/src/simulation/objects.cc.o
In file included from /home/river/plvs/Thirdparty/voxblox/include/voxblox/core/layer.h:11,
from /home/river/plvs/Thirdparty/voxblox/include/voxblox/core/tsdf_map.h:9,
from /home/river/plvs/Thirdparty/voxblox/src/core/tsdf_map.cc:1:
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:35:24: error: ‘BlockProto’ does not name a type
35 | explicit Block(const BlockProto& proto);
| ^~~~~~~~~~
In file included from /home/river/plvs/Thirdparty/voxblox/src/core/block.cc:1:
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:35:24: error: ‘BlockProto’ does not name a type
35 | explicit Block(const BlockProto& proto);
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:185:17: error: ‘BlockProto’ has not been declared
185 | void getProto(BlockProto* proto) const;
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:185:17: error: ‘BlockProto’ has not been declared
185 | void getProto(BlockProto* proto) const;
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:203:31: error: ‘BlockProto’ does not name a type
203 | void deserializeProto(const BlockProto& proto);
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:204:23: error: ‘BlockProto’ has not been declared
204 | void serializeProto(BlockProto* proto) const;
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:203:31: error: ‘BlockProto’ does not name a type
203 | void deserializeProto(const BlockProto& proto);
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:204:23: error: ‘BlockProto’ has not been declared
204 | void serializeProto(BlockProto* proto) const;
| ^~~~~~~~~~
In file included from /home/river/plvs/Thirdparty/voxblox/include/voxblox/core/layer.h:11,
from /home/river/plvs/Thirdparty/voxblox/include/voxblox/integrator/esdf_integrator.h:11,
from /home/river/plvs/Thirdparty/voxblox/src/integrator/esdf_integrator.cc:1:
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:35:24: error: ‘BlockProto’ does not name a type
35 | explicit Block(const BlockProto& proto);
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:185:17: error: ‘BlockProto’ has not been declared
185 | void getProto(BlockProto* proto) const;
| ^~~~~~~~~~
In file included from /home/river/plvs/Thirdparty/voxblox/include/voxblox/core/layer.h:11,
from /home/river/plvs/Thirdparty/voxblox/include/voxblox/core/esdf_map.h:10,
from /home/river/plvs/Thirdparty/voxblox/src/core/esdf_map.cc:1:
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:35:24: error: ‘BlockProto’ does not name a type
35 | explicit Block(const BlockProto& proto);
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:185:17: error: ‘BlockProto’ has not been declared
185 | void getProto(BlockProto* proto) const;
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:203:31: error: ‘BlockProto’ does not name a type
203 | void deserializeProto(const BlockProto& proto);
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:204:23: error: ‘BlockProto’ has not been declared
204 | void serializeProto(BlockProto* proto) const;
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:203:31: error: ‘BlockProto’ does not name a type
203 | void deserializeProto(const BlockProto& proto);
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:204:23: error: ‘BlockProto’ has not been declared
204 | void serializeProto(BlockProto* proto) const;
| ^~~~~~~~~~
In file included from /home/river/plvs/Thirdparty/voxblox/include/voxblox/core/layer.h:11,
from /home/river/plvs/Thirdparty/voxblox/include/voxblox/integrator/esdf_occ_integrator.h:11,
from /home/river/plvs/Thirdparty/voxblox/src/integrator/esdf_occ_integrator.cc:1:
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:35:24: error: ‘BlockProto’ does not name a type
35 | explicit Block(const BlockProto& proto);
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:185:17: error: ‘BlockProto’ has not been declared
185 | void getProto(BlockProto* proto) const;
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:203:31: error: ‘BlockProto’ does not name a type
203 | void deserializeProto(const BlockProto& proto);
| ^~~~~~~~~~
In file included from /home/river/plvs/Thirdparty/voxblox/include/voxblox/core/layer.h:11,
from /home/river/plvs/Thirdparty/voxblox/include/voxblox/io/sdf_ply.h:7,
from /home/river/plvs/Thirdparty/voxblox/src/io/sdf_ply.cc:1:
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:35:24: error: ‘BlockProto’ does not name a type
35 | explicit Block(const BlockProto& proto);
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:204:23: error: ‘BlockProto’ has not been declared
204 | void serializeProto(BlockProto* proto) const;
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:185:17: error: ‘BlockProto’ has not been declared
185 | void getProto(BlockProto* proto) const;
| ^~~~~~~~~~
In file included from /home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:222,
from /home/river/plvs/Thirdparty/voxblox/include/voxblox/core/layer.h:11,
from /home/river/plvs/Thirdparty/voxblox/include/voxblox/core/tsdf_map.h:9,
from /home/river/plvs/Thirdparty/voxblox/src/core/tsdf_map.cc:1:
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:12:31: error: ‘BlockProto’ does not name a type
12 | Block::Block(const BlockProto& proto)
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h: In constructor ‘voxblox::Block::Block(const int&)’:
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:13:19: error: request for member ‘voxels_per_side’ in ‘proto’, which is of non-class type ‘const int’
13 | : Block(proto.voxels_per_side(), proto.voxel_size(),
| ^~~~~~~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:13:44: error: request for member ‘voxel_size’ in ‘proto’, which is of non-class type ‘const int’
13 | : Block(proto.voxels_per_side(), proto.voxel_size(),
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:14:25: error: request for member ‘origin_x’ in ‘proto’, which is of non-class type ‘const int’
14 | Point(proto.origin_x(), proto.origin_y(), proto.origin_z())) {
| ^~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:14:43: error: request for member ‘origin_y’ in ‘proto’, which is of non-class type ‘const int’
14 | Point(proto.origin_x(), proto.origin_y(), proto.origin_z())) {
| ^~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:14:61: error: request for member ‘origin_z’ in ‘proto’, which is of non-class type ‘const int’
14 | Point(proto.origin_x(), proto.origin_y(), proto.origin_z())) {
| ^~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:15:21: error: request for member ‘has_data’ in ‘proto’, which is of non-class type ‘const int’
15 | has_data_ = proto.has_data();
| ^~~~~~~~
In file included from /home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:222,
from /home/river/plvs/Thirdparty/voxblox/src/core/block.cc:1:
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:12:31: error: ‘BlockProto’ does not name a type
12 | Block::Block(const BlockProto& proto)
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h: In constructor ‘voxblox::Block::Block(const int&)’:
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:13:19: error: request for member ‘voxels_per_side’ in ‘proto’, which is of non-class type ‘const int’
13 | : Block(proto.voxels_per_side(), proto.voxel_size(),
| ^~~~~~~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:13:44: error: request for member ‘voxel_size’ in ‘proto’, which is of non-class type ‘const int’
13 | : Block(proto.voxels_per_side(), proto.voxel_size(),
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:14:25: error: request for member ‘origin_x’ in ‘proto’, which is of non-class type ‘const int’
14 | Point(proto.origin_x(), proto.origin_y(), proto.origin_z())) {
| ^~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:14:43: error: request for member ‘origin_y’ in ‘proto’, which is of non-class type ‘const int’
14 | Point(proto.origin_x(), proto.origin_y(), proto.origin_z())) {
| ^~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:14:61: error: request for member ‘origin_z’ in ‘proto’, which is of non-class type ‘const int’
14 | Point(proto.origin_x(), proto.origin_y(), proto.origin_z())) {
| ^~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:15:21: error: request for member ‘has_data’ in ‘proto’, which is of non-class type ‘const int’
15 | has_data_ = proto.has_data();
| ^~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:19:22: error: request for member ‘voxel_data_size’ in ‘proto’, which is of non-class type ‘const int’
19 | data.reserve(proto.voxel_data_size());
| ^~~~~~~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:21:30: error: request for member ‘voxel_data’ in ‘proto’, which is of non-class type ‘const int’
21 | for (uint32_t word : proto.voxel_data()) {
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h: At global scope:
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:29:33: error: variable or field ‘getProto’ declared void
29 | void Block::getProto(BlockProto* proto) const {
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:203:31: error: ‘BlockProto’ does not name a type
203 | void deserializeProto(const BlockProto& proto);
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:204:23: error: ‘BlockProto’ has not been declared
204 | void serializeProto(BlockProto* proto) const;
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:19:22: error: request for member ‘voxel_data_size’ in ‘proto’, which is of non-class type ‘const int’
19 | data.reserve(proto.voxel_data_size());
| ^~~~~~~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:21:30: error: request for member ‘voxel_data’ in ‘proto’, which is of non-class type ‘const int’
21 | for (uint32_t word : proto.voxel_data()) {
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h: At global scope:
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:29:33: error: variable or field ‘getProto’ declared void
29 | void Block::getProto(BlockProto* proto) const {
| ^~~~~~~~~~
In file included from /home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:222,
from /home/river/plvs/Thirdparty/voxblox/include/voxblox/core/layer.h:11,
from /home/river/plvs/Thirdparty/voxblox/include/voxblox/integrator/esdf_integrator.h:11,
from /home/river/plvs/Thirdparty/voxblox/src/integrator/esdf_integrator.cc:1:
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:12:31: error: ‘BlockProto’ does not name a type
12 | Block::Block(const BlockProto& proto)
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h: In constructor ‘voxblox::Block::Block(const int&)’:
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:13:19: error: request for member ‘voxels_per_side’ in ‘proto’, which is of non-class type ‘const int’
13 | : Block(proto.voxels_per_side(), proto.voxel_size(),
| ^~~~~~~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:13:44: error: request for member ‘voxel_size’ in ‘proto’, which is of non-class type ‘const int’
13 | : Block(proto.voxels_per_side(), proto.voxel_size(),
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:14:25: error: request for member ‘origin_x’ in ‘proto’, which is of non-class type ‘const int’
14 | Point(proto.origin_x(), proto.origin_y(), proto.origin_z())) {
| ^~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:14:43: error: request for member ‘origin_y’ in ‘proto’, which is of non-class type ‘const int’
14 | Point(proto.origin_x(), proto.origin_y(), proto.origin_z())) {
| ^~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:14:61: error: request for member ‘origin_z’ in ‘proto’, which is of non-class type ‘const int’
14 | Point(proto.origin_x(), proto.origin_y(), proto.origin_z())) {
| ^~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:15:21: error: request for member ‘has_data’ in ‘proto’, which is of non-class type ‘const int’
15 | has_data_ = proto.has_data();
| ^~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:29:33: error: ‘BlockProto’ was not declared in this scope
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:19:22: error: request for member ‘voxel_data_size’ in ‘proto’, which is of non-class type ‘const int’
19 | data.reserve(proto.voxel_data_size());
| ^~~~~~~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:21:30: error: request for member ‘voxel_data’ in ‘proto’, which is of non-class type ‘const int’
21 | for (uint32_t word : proto.voxel_data()) {
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h: At global scope:
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:29:33: error: variable or field ‘getProto’ declared void
29 | void Block::getProto(BlockProto* proto) const {
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:29:33: error: ‘BlockProto’ was not declared in this scope
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:29:45: error: ‘proto’ was not declared in this scope
29 | void Block::getProto(BlockProto* proto) const {
| ^~~~~
In file included from /home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block.h:222,
from /home/river/plvs/Thirdparty/voxblox/include/voxblox/core/layer.h:11,
from /home/river/plvs/Thirdparty/voxblox/include/voxblox/core/esdf_map.h:10,
from /home/river/plvs/Thirdparty/voxblox/src/core/esdf_map.cc:1:
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:12:31: error: ‘BlockProto’ does not name a type
12 | Block::Block(const BlockProto& proto)
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h: In constructor ‘voxblox::Block::Block(const int&)’:
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:13:19: error: request for member ‘voxels_per_side’ in ‘proto’, which is of non-class type ‘const int’
13 | : Block(proto.voxels_per_side(), proto.voxel_size(),
| ^~~~~~~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:13:44: error: request for member ‘voxel_size’ in ‘proto’, which is of non-class type ‘const int’
13 | : Block(proto.voxels_per_side(), proto.voxel_size(),
| ^~~~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:14:25: error: request for member ‘origin_x’ in ‘proto’, which is of non-class type ‘const int’
14 | Point(proto.origin_x(), proto.origin_y(), proto.origin_z())) {
| ^~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:14:43: error: request for member ‘origin_y’ in ‘proto’, which is of non-class type ‘const int’
14 | Point(proto.origin_x(), proto.origin_y(), proto.origin_z())) {
| ^~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:14:61: error: request for member ‘origin_z’ in ‘proto’, which is of non-class type ‘const int’
14 | Point(proto.origin_x(), proto.origin_y(), proto.origin_z())) {
| ^~~~~~~~
/home/river/plvs/Thirdparty/voxblox/include/voxblox/core/block_inl.h:15:21: error: request for member ‘has_data’ in ‘proto’, which is of non-class type ‘const int’
15 | has_data_ = proto.has_data();
Looking forward to your reply, thank you very much!