Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error Buiding OpenVDB Samples #121

Open
ghost opened this issue Jun 18, 2021 · 1 comment
Open

Error Buiding OpenVDB Samples #121

ghost opened this issue Jun 18, 2021 · 1 comment

Comments

@ghost
Copy link

ghost commented Jun 18, 2021

I have successfully built and tested gvdb-voxels "as-is", but now I am trying to build gvdb-voxels with OpenVDB Samples enabled. I have built OpenVDB 8.1.1 and installed, and set GVDB_BUILD_OPENVDB and GVDB_BUILD_OPENVDB_SAMPLES to ON.

I am getting the following CMake messages:

Note: GVDB_OPENVDB_INSTALL_PATH not specified; assuming OpenVDB has been installed in /usr/local/lib64 (which should contain cmake/OpenVDB).
CMake Error at source/gvdb_library/CMakeLists.txt:262 (find_package):
By not providing "FindOpenVDB.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "OpenVDB", but
CMake did not find one.

Could not find a package configuration file provided by "OpenVDB" with any
of the following names:

OpenVDBConfig.cmake
openvdb-config.cmake

Add the installation prefix of "OpenVDB" to CMAKE_PREFIX_PATH or set
"OpenVDB_DIR" to a directory containing one of the above files. If
"OpenVDB" provides a separate development package or SDK, be sure it has
been installed.

I have built and installed OpenVDB 8.1.1 and it is in /usr/local/lib64 however, there are no .cmake files in /usr/local/lib64/cmake/OpenVDB, which I assume is why OpenVDBConfig.cmake and openvdb-config.cmake are not found and do not seem to be present in my OpenVDB build tree, so not sure what to do about that. BUT, when I try to use the FindOpenVDB.cmake from the OpenVDB distribution with gvdb-voxels, I get compiliation errors:

[ 2%] Built target gvdbPTX
[ 3%] Building CXX object gvdb_library/CMakeFiles/gvdb.dir/src/gvdb_volume_gvdb.cpp.o
[ 4%] Built target gRenderKernelPTX
In file included from gvdb-voxels/source/gvdb_library/src/gvdb_allocator.h:14,
from gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:10:
gvdb-voxels/source/gvdb_library/src/gvdb_vec.h:280:26: warning: type attributes ignored after type is already defined [-Wattributes]
template class GVDB_API Vector3D;
^~~~~~~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_vec.h:281:26: warning: type attributes ignored after type is already defined [-Wattributes]
template class GVDB_API Vector3D;
^~~~~~~~~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp: In constructor ‘nvdb::VolumeGVDB::VolumeGVDB()’:
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:64:12: warning: converting to non-pointer type ‘CUdevice’ {aka ‘int’} from NULL [-Wconversion-null]
mDevice = NULL;
^~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp: In member function ‘bool nvdb::VolumeGVDB::LoadVDBInternal(openvdb::v8_1::GridBase::Ptr&)’:
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1965:62: error: to refer to a type member of a template parameter, use ‘typename GridType::ValueType’ [-fpermissive]
const bool isFloat = std::is_same<GridType::ValueType, float>::value;
^
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1971:2: error: need ‘typename’ before ‘GridType::Ptr’ because ‘GridType’ is a dependent scope
GridType::Ptr grid = openvdb::gridPtrCast(baseGrid);
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1971:15: error: expected ‘;’ before ‘grid’
GridType::Ptr grid = openvdb::gridPtrCast(baseGrid);
^~~~~
;
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1973:22: error: ‘grid’ was not declared in this scope
static_cast(grid->voxelSize().x()),
^~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1973:22: note: suggested alternative: ‘void’
static_cast(grid->voxelSize().x()),
^~~~
void
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1990:2: error: need ‘typename’ before ‘typename GridType::TreeType::LeafCIter’ because ‘typename GridType::TreeType’ is a dependent scope
GridType::TreeType::LeafCIter iterator;
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1990:31: error: expected ‘;’ before ‘iterator’
GridType::TreeType::LeafCIter iterator;
^~~~~~~~~
;
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1991:26: error: ‘iterator’ was not declared in this scope
vdbSkip(grid, iterator, leaf_start);
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1991:26: note: suggested alternatives:
In file included from /opt/rh/devtoolset-8/root/usr/include/c++/8/bits/stl_algobase.h:65,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/bits/char_traits.h:39,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/ios:40,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/ostream:38,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/iostream:39,
from gvdb-voxels/source/gvdb_library/src/gvdb_vec.h:15,
from gvdb-voxels/source/gvdb_library/src/gvdb_allocator.h:14,
from gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:10:
/opt/rh/devtoolset-8/root/usr/include/c++/8/bits/stl_iterator_base_types.h:118:12: note: ‘std::iterator’
struct iterator
^~~~~~~~
/opt/rh/devtoolset-8/root/usr/include/c++/8/bits/stl_iterator_base_types.h:118:12: note: ‘std::iterator’
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2093:4: error: need ‘typename’ before ‘typename GridType::TreeType::LeafNodeType::Buffer’ because ‘typename GridType::TreeType::LeafNodeType’ is a dependent scope
GridType::TreeType::LeafNodeType::Buffer leafBuffer = iterator->buffer();
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2093:44: error: expected ‘;’ before ‘leafBuffer’
GridType::TreeType::LeafNodeType::Buffer leafBuffer = iterator->buffer();
^~~~~~~~~~~
;
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2096:11: error: ‘leafBuffer’ was not declared in this scope
src = leafBuffer.data();
^~~~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2096:11: note: suggested alternative: ‘glReadBuffer’
src = leafBuffer.data();
^~~~~~~~~~
glReadBuffer
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2099:55: error: ‘leafBuffer’ was not declared in this scope
src = ConvertToScalar(res0 * res0 * res0, (float*)leafBuffer.data(), srcLengths, mValMin, mValMax);
^~~~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2099:55: note: suggested alternative: ‘glReadBuffer’
src = ConvertToScalar(res0 * res0 * res0, (float*)leafBuffer.data(), srcLengths, mValMin, mValMax);
^~~~~~~~~~
glReadBuffer
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp: In member function ‘void nvdb::VolumeGVDB::SaveVDBInternal(std::string&)’:
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2215:2: error: need ‘typename’ before ‘TreeType::Ptr’ because ‘TreeType’ is a dependent scope
TreeType::Ptr tree(treePtr);
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2215:15: error: expected ‘;’ before ‘tree’
TreeType::Ptr tree(treePtr);
^~~~~
;
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2240:10: error: ‘tree’ was not declared in this scope
leaf = tree->touchLeaf(openvdb::Coord(pos.x, pos.y, pos.z));
^~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2240:10: note: suggested alternative:
In file included from /usr/local/include/openvdb/tools/Count.h:15,
from /usr/local/include/openvdb/tree/Tree.h:13,
from /usr/local/include/openvdb/Grid.h:12,
from /usr/local/include/openvdb/openvdb.h:12,
from gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.h:21,
from gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:12:
/usr/local/include/openvdb/tree/NodeManager.h:25:11: note: ‘openvdb::v8_1::tree’
namespace tree {
^~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2250:33: error: ‘tree’ was not declared in this scope
verbosef(" Leaf count: %d\n", tree->leafCount());
^~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2250:33: note: suggested alternative:
In file included from /usr/local/include/openvdb/tools/Count.h:15,
from /usr/local/include/openvdb/tree/Tree.h:13,
from /usr/local/include/openvdb/Grid.h:12,
from /usr/local/include/openvdb/openvdb.h:12,
from gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.h:21,
from gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:12:
/usr/local/include/openvdb/tree/NodeManager.h:25:11: note: ‘openvdb::v8_1::tree’
namespace tree {
^~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2254:2: error: need ‘typename’ before ‘GridType::Ptr’ because ‘GridType’ is a dependent scope
GridType::Ptr grid = GridType::create(tree);
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2254:15: error: expected ‘;’ before ‘grid’
GridType::Ptr grid = GridType::create(tree);
^~~~~
;
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2255:2: error: ‘grid’ was not declared in this scope
grid->setGridClass(openvdb::GRID_FOG_VOLUME);
^~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2255:2: note: suggested alternative: ‘void’
grid->setGridClass(openvdb::GRID_FOG_VOLUME);
^~~~
void
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp: In member function ‘void nvdb::VolumeGVDB::PrepareRender(int, int, char)’:
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:4301:59: warning: converting to non-pointer type ‘long long unsigned int’ from NULL [-Wconversion-null]
mScnInfo.dbuf = (dbuf == 255 ? NULL : mRenderBuf[dbuf].gpu);
^~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp: In member function ‘void nvdb::VolumeGVDB::ScatterDensity(int, float, float, nvdb::Vector3DF, bool, bool)’:
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:5637:33: warning: NULL used in arithmetic [-Wpointer-arith]
if (mAux[AUX_PNTCLR].gpu != NULL && avgColor) {
^~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:5649:30: warning: NULL used in arithmetic [-Wpointer-arith]
if (mAux[AUX_PNTCLR].gpu != NULL && avgColor) {
^~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp: In instantiation of ‘bool nvdb::VolumeGVDB::LoadVDBInternal(openvdb::v8_1::GridBase::Ptr&) [with GridType = openvdb::v8_1::Grid<openvdb::v8_1::tree::Tree<openvdb::v8_1::tree::RootNode<openvdb::v8_1::tree::InternalNode<openvdb::v8_1::tree::InternalNode<openvdb::v8_1::tree::LeafNode<float, 3>, 4>, 5> > > >; openvdb::v8_1::GridBase::Ptr = std::shared_ptropenvdb::v8_1::GridBase]’:
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2172:51: required from here
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1971:2: error: dependent-name ‘GridType::Ptr’ is parsed as a non-type, but instantiation yields a type
GridType::Ptr grid = openvdb::gridPtrCast(baseGrid);
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1971:2: note: say ‘typename GridType::Ptr’ if a type is meant
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1990:2: error: dependent-name ‘typename GridType::TreeType::LeafCIter’ is parsed as a non-type, but instantiation yields a type
GridType::TreeType::LeafCIter iterator;
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1990:2: note: say ‘typename typename GridType::TreeType::LeafCIter’ if a type is meant
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2093:4: error: dependent-name ‘typename GridType::TreeType::LeafNodeType::Buffer’ is parsed as a non-type, but instantiation yields a type
GridType::TreeType::LeafNodeType::Buffer leafBuffer = iterator->buffer();
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2093:4: note: say ‘typename typename GridType::TreeType::LeafNodeType::Buffer’ if a type is meant
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp: In instantiation of ‘bool nvdb::VolumeGVDB::LoadVDBInternal(openvdb::v8_1::GridBase::Ptr&) [with GridType = openvdb::v8_1::Grid<openvdb::v8_1::tree::Tree<openvdb::v8_1::tree::RootNode<openvdb::v8_1::tree::InternalNode<openvdb::v8_1::tree::InternalNode<openvdb::v8_1::tree::InternalNode<openvdb::v8_1::tree::LeafNode<float, 4>, 3>, 3>, 3> > > >; openvdb::v8_1::GridBase::Ptr = std::shared_ptropenvdb::v8_1::GridBase]’:
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2180:50: required from here
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1971:2: error: dependent-name ‘GridType::Ptr’ is parsed as a non-type, but instantiation yields a type
GridType::Ptr grid = openvdb::gridPtrCast(baseGrid);
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1971:2: note: say ‘typename GridType::Ptr’ if a type is meant
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1990:2: error: dependent-name ‘typename GridType::TreeType::LeafCIter’ is parsed as a non-type, but instantiation yields a type
GridType::TreeType::LeafCIter iterator;
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1990:2: note: say ‘typename typename GridType::TreeType::LeafCIter’ if a type is meant
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2093:4: error: dependent-name ‘typename GridType::TreeType::LeafNodeType::Buffer’ is parsed as a non-type, but instantiation yields a type
GridType::TreeType::LeafNodeType::Buffer leafBuffer = iterator->buffer();
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2093:4: note: say ‘typename typename GridType::TreeType::LeafNodeType::Buffer’ if a type is meant
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp: In instantiation of ‘void nvdb::VolumeGVDB::SaveVDBInternal(std::string&) [with TreeType = openvdb::v8_1::tree::Tree<openvdb::v8_1::tree::RootNode<openvdb::v8_1::tree::InternalNode<openvdb::v8_1::tree::InternalNode<openvdb::v8_1::tree::LeafNode<float, 3>, 4>, 5> > >; std::string = std::basic_string]’:
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2292:38: required from here
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2215:2: error: dependent-name ‘TreeType::Ptr’ is parsed as a non-type, but instantiation yields a type
TreeType::Ptr tree(treePtr);
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2215:2: note: say ‘typename TreeType::Ptr’ if a type is meant
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2254:2: error: dependent-name ‘GridType::Ptr’ is parsed as a non-type, but instantiation yields a type
GridType::Ptr grid = GridType::create(tree);
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2254:2: note: say ‘typename GridType::Ptr’ if a type is meant
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp: In instantiation of ‘void nvdb::VolumeGVDB::SaveVDBInternal(std::string&) [with TreeType = openvdb::v8_1::tree::Tree<openvdb::v8_1::tree::RootNode<openvdb::v8_1::tree::InternalNode<openvdb::v8_1::tree::InternalNode<openvdb::v8_1::tree::InternalNode<openvdb::v8_1::tree::LeafNode<float, 4>, 3>, 3>, 3> > >; std::string = std::basic_string]’:
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2295:37: required from here
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2215:2: error: dependent-name ‘TreeType::Ptr’ is parsed as a non-type, but instantiation yields a type
TreeType::Ptr tree(treePtr);
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2215:2: note: say ‘typename TreeType::Ptr’ if a type is meant
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2254:2: error: dependent-name ‘GridType::Ptr’ is parsed as a non-type, but instantiation yields a type
GridType::Ptr grid = GridType::create(tree);
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2254:2: note: say ‘typename GridType::Ptr’ if a type is meant
make[2]: *** [gvdb_library/CMakeFiles/gvdb.dir/build.make:251: gvdb_library/CMakeFiles/gvdb.dir/src/gvdb_volume_gvdb.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:314: gvdb_library/CMakeFiles/gvdb.dir/all] Error 2
make: *** [Makefile:149: all] Error 2

@gongyuuhi
Copy link

the same question,did you solve it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant