penn-graphics-research / ziran2020

Code for two SIGGRAPH 2020 papers from UPenn, AnisoMPM and IQ-MPM!
208 stars 34 forks source link

Link error: Undefined symbols for architecture x86_64: "openvdb::v7_2::io::..." #12

Open g1n0st opened 3 years ago

g1n0st commented 3 years ago

I followed the guidance to turn off the amgcl CUDA: option(ENABLE_AMGCL_CUDA "Use amgcl cuda" OFF) But now I am configured successful but failed in generate, the CMake info as follows:

Build Detected CPU: kaby-lake


CMake Warning (dev) at /Applications/CMake.app/Contents/share/cmake-3.19/Modules/FindPackageHandleStandardArgs.cmake:424 (message): The package name passed to find_package_handle_standard_args (OPENVDB) does not match the name of the calling package (OpenVDB). This can lead to problems in calling code that expects find_package result variables (e.g., _FOUND) to follow a certain pattern. Call Stack (most recent call first): CMake/FindOpenVDB.cmake:19 (find_package_handle_standard_args) Deps/CMakeLists.txt:33 (find_package) This warning is for project developers. Use -Wno-dev to suppress it.

Could NOT find OPENVDB (missing: OPENVDB_LIBRARIES OPENVDB_INCLUDE_DIRS) Downloading/updating kdtree CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

-- Configuring done

-- Generating done

-- Build files have been written to: /Users/yc/Documents/GitHub/ziran2020/build/kdtree-download

[100%] Built target kdtree-download

Downloading/updating amgcl CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

-- Configuring done

-- Generating done

-- Build files have been written to: /Users/yc/Documents/GitHub/ziran2020/build/amgcl-download

[100%] Built target amgcl-download

Found OpenMP_CXX: -Xclang -fopenmp (found version "4.5") Found OpenMP: TRUE (found version "4.5")
Downloading/updating VexCL CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

-- Configuring done

-- Generating done

-- Build files have been written to: /Users/yc/Documents/GitHub/ziran2020/build/VexCL-download

[100%] Built target VexCL-download

Found VexCL::OpenCL Found VexCL::Compute CUDA_TOOLKIT_ROOT_DIR not found or specified Could NOT find CUDA (missing: CUDA_TOOLKIT_ROOT_DIR CUDA_NVCC_EXECUTABLE CUDA_INCLUDE_DIRS CUDA_CUDART_LIBRARY) Found OpenMP_CXX: -Xclang -fopenmp (found version "4.5") Found OpenMP: TRUE (found version "4.5")
Found VexCL::JIT Downloading/updating partio CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

-- Configuring done

-- Generating done

-- Build files have been written to: /Users/yc/Documents/GitHub/ziran2020/build/partio-download

[100%] Built target partio-download

CMake Deprecation Warning at build/partio-src/CMakeLists.txt:35 (CMAKE_MINIMUM_REQUIRED): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

Downloading/updating Tick CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

-- Configuring done

-- Generating done

-- Build files have been written to: /Users/yc/Documents/GitHub/ziran2020/build/Tick-download

[100%] Built target Tick-download

CMake Warning (dev) at /Applications/CMake.app/Contents/share/cmake-3.19/Modules/FindPackageHandleStandardArgs.cmake:424 (message): The package name passed to find_package_handle_standard_args (METIS) does not match the name of the calling package (Metis). This can lead to problems in calling code that expects find_package result variables (e.g., _FOUND) to follow a certain pattern. Call Stack (most recent call first): CMake/FindMetis.cmake:54 (find_package_handle_standard_args) Deps/CMakeLists.txt:116 (find_package) This warning is for project developers. Use -Wno-dev to suppress it.

Could NOT find METIS (missing: METIS_INCLUDE_DIRS METIS_LIBRARIES) Found: /usr/bin/git Found: /usr/bin/python Found: /usr/local/bin/clang-format Found git root: /Users/yc/Documents/GitHub/ziran2020


C++ Cmake Flags: -msse4.2 -mfma -mavx2 -fPIC -Wall -Werror=all -Wextra -Wno-unused-parameter -march=native


Configuring done CMake Error at Lib/Ziran/CMakeLists.txt:6 (add_library): Target "ziran" links to target "VexCL::CUDA" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing?

CMake Error at CMakeLists.txt:127 (add_executable): Target "anisofracture" links to target "VexCL::CUDA" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): Projects/anisofracture/CMakeLists.txt:7 (add_ziran_executable)

g1n0st commented 3 years ago

After change the CMake version and turn off the -Werror switch, I configured and generated successful, however when compiling I encountered the following error:

/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/Util/BinaryIO.h:106:15: error: reinterpret_cast from '__bit_iterator<std::__1::vector<bool,
      Eigen::aligned_allocator<bool> >, true>' to 'const char *' is not allowed
    out.write(reinterpret_cast<const char*>(&a), sizeof a);

the context is:

...
...
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/Util/BinaryIO.h:106:15: error: reinterpret_cast from '__bit_iterator<std::__1::vector<bool,
      Eigen::aligned_allocator<bool> >, true>' to 'const char *' is not allowed
    out.write(reinterpret_cast<const char*>(&a), sizeof a);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/Util/BinaryIO.h:276:5: note: in instantiation of function template specialization
      'ZIRAN::writeHelper<std::__1::__bit_const_reference<std::__1::vector<bool, Eigen::aligned_allocator<bool> > > >' requested here
    writeHelper(out, x, typename RW<Type>::Tag{});
    ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/Util/BinaryIO.h:87:9: note: in instantiation of function template specialization
      'ZIRAN::writeEntry<std::__1::__bit_const_reference<std::__1::vector<bool, Eigen::aligned_allocator<bool> > > >' requested here
        writeEntry(out, x);
        ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataArray.h:130:9: note: in instantiation of function template specialization
      'ZIRAN::writeSTDVector<bool>' requested here
        writeSTDVector(out, array);
        ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataArray.h:55:5: note: in instantiation of member function
      'ZIRAN::DATA::DataArray<bool>::writeData' requested here
    DataArray(const std::string& name, const DisjointRanges& ranges, StdVector<Type>&& array)
    ^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3033:32: note: in instantiation of member function 'ZIRAN::DATA::DataArray<bool>::DataArray'
      requested here
    return unique_ptr<_Tp>(new _Tp(_VSTD::forward<_Args>(__args)...));
                               ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataManager.h:152:22: note: in instantiation of function template specialization
      'std::__1::make_unique<ZIRAN::DATA::DataArray<bool>, const std::__1::basic_string<char> &, ZIRAN::DisjointRanges, std::__1::vector<bool,
      Eigen::aligned_allocator<bool> > >' requested here
                std::make_unique<DataArray<Type>>(
                     ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataManager.h:121:16: note: in instantiation of function template specialization
      'ZIRAN::DATA::DataManager::add<bool>' requested here
        return add(a, range, StdVector<Type>(range.upper - range.lower, value));
               ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../MPM/MpmParticleHandleBase.cpp:1243:15: note: in instantiation of function template specialization
      'ZIRAN::DATA::DataManager::add<bool, bool>' requested here
    particles.add(inextensibility_name<bool>(), particle_range, true);
              ^
In file included from /Users/yc/Documents/GitHub/ziran2020/Lib/MPM/instantiations/MpmParticlesHandle3d.cpp:1:
In file included from /Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../MPM/MpmParticleHandleBase.cpp:3:
In file included from /Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../MPM/MpmParticleHandleBase.h:11:
In file included from /Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/Util/AttributeNamesForward.h:3:
In file included from /Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataManager.h:3:
In file included from /Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataArray.h:4:
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/Util/BinaryIO.h:86:22: warning: loop variable 'x' is always a copy because the range of type
      'const StdVector<bool>' (aka 'const vector<bool, Eigen::aligned_allocator<bool> >') does not return a reference [-Wrange-loop-analysis]
    for (const auto& x : a)
                     ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataArray.h:130:9: note: in instantiation of function template specialization
      'ZIRAN::writeSTDVector<bool>' requested here
        writeSTDVector(out, array);
        ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataArray.h:55:5: note: in instantiation of member function
      'ZIRAN::DATA::DataArray<bool>::writeData' requested here
    DataArray(const std::string& name, const DisjointRanges& ranges, StdVector<Type>&& array)
    ^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3033:32: note: in instantiation of member function 'ZIRAN::DATA::DataArray<bool>::DataArray'
      requested here
    return unique_ptr<_Tp>(new _Tp(_VSTD::forward<_Args>(__args)...));
                               ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataManager.h:152:22: note: in instantiation of function template specialization
      'std::__1::make_unique<ZIRAN::DATA::DataArray<bool>, const std::__1::basic_string<char> &, ZIRAN::DisjointRanges, std::__1::vector<bool,
      Eigen::aligned_allocator<bool> > >' requested here
                std::make_unique<DataArray<Type>>(
                     ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataManager.h:121:16: note: in instantiation of function template specialization
      'ZIRAN::DATA::DataManager::add<bool>' requested here
        return add(a, range, StdVector<Type>(range.upper - range.lower, value));
               ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../MPM/MpmParticleHandleBase.cpp:1243:15: note: in instantiation of function template specialization
      'ZIRAN::DATA::DataManager::add<bool, bool>' requested here
    particles.add(inextensibility_name<bool>(), particle_range, true);
              ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/Util/BinaryIO.h:86:10: note: use non-reference type
      'std::__1::__bit_const_reference<std::__1::vector<bool, Eigen::aligned_allocator<bool> > >'
    for (const auto& x : a)
         ^~~~~~~~~~~~~~~
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/Util/BinaryIO.h:106:15: error: reinterpret_cast from '__bit_iterator<std::__1::vector<bool,
      Eigen::aligned_allocator<bool> >, true>' to 'const char *' is not allowed
    out.write(reinterpret_cast<const char*>(&a), sizeof a);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/Util/BinaryIO.h:276:5: note: in instantiation of function template specialization
      'ZIRAN::writeHelper<std::__1::__bit_const_reference<std::__1::vector<bool, Eigen::aligned_allocator<bool> > > >' requested here
    writeHelper(out, x, typename RW<Type>::Tag{});
    ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/Util/BinaryIO.h:87:9: note: in instantiation of function template specialization
      'ZIRAN::writeEntry<std::__1::__bit_const_reference<std::__1::vector<bool, Eigen::aligned_allocator<bool> > > >' requested here
        writeEntry(out, x);
        ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataArray.h:130:9: note: in instantiation of function template specialization
      'ZIRAN::writeSTDVector<bool>' requested here
        writeSTDVector(out, array);
        ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataArray.h:55:5: note: in instantiation of member function
      'ZIRAN::DATA::DataArray<bool>::writeData' requested here
    DataArray(const std::string& name, const DisjointRanges& ranges, StdVector<Type>&& array)
    ^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3033:32: note: in instantiation of member function 'ZIRAN::DATA::DataArray<bool>::DataArray'
      requested here
    return unique_ptr<_Tp>(new _Tp(_VSTD::forward<_Args>(__args)...));
                               ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataManager.h:152:22: note: in instantiation of function template specialization
      'std::__1::make_unique<ZIRAN::DATA::DataArray<bool>, const std::__1::basic_string<char> &, ZIRAN::DisjointRanges, std::__1::vector<bool,
      Eigen::aligned_allocator<bool> > >' requested here
                std::make_unique<DataArray<Type>>(
                     ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataManager.h:121:16: note: in instantiation of function template specialization
      'ZIRAN::DATA::DataManager::add<bool>' requested here
        return add(a, range, StdVector<Type>(range.upper - range.lower, value));
               ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../MPM/MpmParticleHandleBase.cpp:1243:15: note: in instantiation of function template specialization
      'ZIRAN::DATA::DataManager::add<bool, bool>' requested here
    particles.add(inextensibility_name<bool>(), particle_range, true);
              ^
In file included from /Users/yc/Documents/GitHub/ziran2020/Lib/MPM/instantiations/MpmParticlesHandle3f.cpp:1:
In file included from /Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../MPM/MpmParticleHandleBase.cpp:3:
In file included from /Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../MPM/MpmParticleHandleBase.h:11:
In file included from /Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/Util/AttributeNamesForward.h:3:
In file included from /Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataManager.h:3:
In file included from /Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataArray.h:4:
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/Util/BinaryIO.h:86:22: warning: loop variable 'x' is always a copy because the range of type
      'const StdVector<bool>' (aka 'const vector<bool, Eigen::aligned_allocator<bool> >') does not return a reference [-Wrange-loop-analysis]
    for (const auto& x : a)
                     ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataArray.h:130:9: note: in instantiation of function template specialization
      'ZIRAN::writeSTDVector<bool>' requested here
        writeSTDVector(out, array);
        ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataArray.h:55:5: note: in instantiation of member function
      'ZIRAN::DATA::DataArray<bool>::writeData' requested here
    DataArray(const std::string& name, const DisjointRanges& ranges, StdVector<Type>&& array)
    ^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3033:32: note: in instantiation of member function 'ZIRAN::DATA::DataArray<bool>::DataArray'
      requested here
    return unique_ptr<_Tp>(new _Tp(_VSTD::forward<_Args>(__args)...));
                               ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataManager.h:152:22: note: in instantiation of function template specialization
      'std::__1::make_unique<ZIRAN::DATA::DataArray<bool>, const std::__1::basic_string<char> &, ZIRAN::DisjointRanges, std::__1::vector<bool,
      Eigen::aligned_allocator<bool> > >' requested here
                std::make_unique<DataArray<Type>>(
                     ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataManager.h:121:16: note: in instantiation of function template specialization
      'ZIRAN::DATA::DataManager::add<bool>' requested here
        return add(a, range, StdVector<Type>(range.upper - range.lower, value));
               ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../MPM/MpmParticleHandleBase.cpp:1243:15: note: in instantiation of function template specialization
      'ZIRAN::DATA::DataManager::add<bool, bool>' requested here
    particles.add(inextensibility_name<bool>(), particle_range, true);
              ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/Util/BinaryIO.h:86:10: note: use non-reference type
      'std::__1::__bit_const_reference<std::__1::vector<bool, Eigen::aligned_allocator<bool> > >'
    for (const auto& x : a)
         ^~~~~~~~~~~~~~~
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/Util/BinaryIO.h:106:15: error: reinterpret_cast from '__bit_iterator<std::__1::vector<bool,
      Eigen::aligned_allocator<bool> >, true>' to 'const char *' is not allowed
    out.write(reinterpret_cast<const char*>(&a), sizeof a);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/Util/BinaryIO.h:276:5: note: in instantiation of function template specialization
      'ZIRAN::writeHelper<std::__1::__bit_const_reference<std::__1::vector<bool, Eigen::aligned_allocator<bool> > > >' requested here
    writeHelper(out, x, typename RW<Type>::Tag{});
    ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/Util/BinaryIO.h:87:9: note: in instantiation of function template specialization
      'ZIRAN::writeEntry<std::__1::__bit_const_reference<std::__1::vector<bool, Eigen::aligned_allocator<bool> > > >' requested here
        writeEntry(out, x);
        ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataArray.h:130:9: note: in instantiation of function template specialization
      'ZIRAN::writeSTDVector<bool>' requested here
        writeSTDVector(out, array);
        ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataArray.h:55:5: note: in instantiation of member function
      'ZIRAN::DATA::DataArray<bool>::writeData' requested here
    DataArray(const std::string& name, const DisjointRanges& ranges, StdVector<Type>&& array)
    ^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3033:32: note: in instantiation of member function 'ZIRAN::DATA::DataArray<bool>::DataArray'
      requested here
    return unique_ptr<_Tp>(new _Tp(_VSTD::forward<_Args>(__args)...));
                               ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataManager.h:152:22: note: in instantiation of function template specialization
      'std::__1::make_unique<ZIRAN::DATA::DataArray<bool>, const std::__1::basic_string<char> &, ZIRAN::DisjointRanges, std::__1::vector<bool,
      Eigen::aligned_allocator<bool> > >' requested here
                std::make_unique<DataArray<Type>>(
                     ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../Ziran/CS/DataStructure/DataManager.h:121:16: note: in instantiation of function template specialization
      'ZIRAN::DATA::DataManager::add<bool>' requested here
        return add(a, range, StdVector<Type>(range.upper - range.lower, value));
               ^
/Users/yc/Documents/GitHub/ziran2020/Lib/SPGrid/../MPM/MpmParticleHandleBase.cpp:1243:15: note: in instantiation of function template specialization
      'ZIRAN::DATA::DataManager::add<bool, bool>' requested here
    particles.add(inextensibility_name<bool>(), particle_range, true);
              ^
35 warnings and 1 error generated.
make[2]: *** [Lib/MPM/CMakeFiles/mpmdev.dir/instantiations/MpmParticlesHandle2d.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
35 warnings and 1 error generated.
make[2]: *** [Lib/MPM/CMakeFiles/mpmdev.dir/instantiations/MpmParticlesHandle3d.cpp.o] Error 1
35 warnings and 1 error generated.
make[2]: *** [Lib/MPM/CMakeFiles/mpmdev.dir/instantiations/MpmParticlesHandle2f.cpp.o] Error 1
35 warnings and 1 error generated.
make[2]: *** [Lib/MPM/CMakeFiles/mpmdev.dir/instantiations/MpmParticlesHandle3f.cpp.o] Error 1
make[1]: *** [Lib/MPM/CMakeFiles/mpmdev.dir/all] Error 2
make: *** [all] Error 2

Here is my eigen version info:

brew info eigen   
eigen: stable 3.3.8 (bottled), HEAD
C++ template library for linear algebra
https://eigen.tuxfamily.org/
Conflicts with:
  freeling (because freeling ships its own copy of eigen)
/usr/local/Cellar/eigen/3.3.8_1 (493 files, 6.6MB) *
  Poured from bottle on 2020-11-26 at 23:08:18
From: https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git/Formula/eigen.rb
License: MPL-2.0
==> Dependencies
Build: cmake ✔
==> Options
--HEAD
    Install HEAD version
==> Analytics
install: 36,800 (30 days), 94,908 (90 days), 234,251 (365 days)
install-on-request: 4,431 (30 days), 11,871 (90 days), 29,700 (365 days)
build-error: 0 (30 days)
ZP-Z commented 3 years ago

Have you installed all the dependencies?

g1n0st commented 3 years ago

Yeah, I switched compiler from clang to gcc7 and problem solved. Now the openvdb default-brew-installed version is too new to link, I am trying older OSX(10.16) version built openvdb lib. The process is so painful, I hope is the last problem. : (

ZP-Z commented 3 years ago

OK, I built Ziran on both Ubuntu and Windows WSL and there was no problem.

g1n0st commented 3 years ago

It still doesn't work. I tried brew installed openvdb v7.0.0 and v7.0.2, as well as built the v7.2 from source code. But when in the link stage, it repeat reports following link errors. A day after I still could not target the problem, may I ask the openvdb version the origin project used and I try it again?

[100%] Linking CXX executable ../../../Projects/coupling/coupling
ld: warning: dylib (/usr/local/Cellar/gcc@7/7.5.0_2/lib/gcc/7/libstdc++.dylib) was built for newer macOS version (10.15.4) than being linked (10.15)
ld: warning: dylib (/usr/local/Cellar/gcc@7/7.5.0_2/lib/gcc/7/libgomp.dylib) was built for newer macOS version (10.15.4) than being linked (10.15)
Undefined symbols for architecture x86_64:
  "openvdb::v7_2::io::zipToStream(std::basic_ostream<char, std::char_traits<char> >&, char const*, unsigned long)", referenced from:
      void openvdb::v7_2::io::writeData<bool>(std::basic_ostream<char, std::char_traits<char> >&, bool const*, unsigned int, unsigned int) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::writeData<unsigned int>(std::basic_ostream<char, std::char_traits<char> >&, unsigned int const*, unsigned int, unsigned int) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::writeData<short>(std::basic_ostream<char, std::char_traits<char> >&, short const*, unsigned int, unsigned int) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::writeData<openvdb::v7_2::math::Vec3<float> >(std::basic_ostream<char, std::char_traits<char> >&, openvdb::v7_2::math::Vec3<float> const*, unsigned int, unsigned int) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::writeData<float>(std::basic_ostream<char, std::char_traits<char> >&, float const*, unsigned int, unsigned int) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::writeData<openvdb::v7_2::math::Vec3<half> >(std::basic_ostream<char, std::char_traits<char> >&, openvdb::v7_2::math::Vec3<half> const*, unsigned int, unsigned int) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::writeData<half>(std::basic_ostream<char, std::char_traits<char> >&, half const*, unsigned int, unsigned int) in libziran.a(VdbLevelSet.cpp.o)
      ...
  "openvdb::v7_2::io::getHalfFloat(std::ios_base&)", referenced from:
      openvdb::v7_2::tree::LeafBuffer<openvdb::v7_2::math::Vec3<float>, 3u>::doLoad() const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::LeafBuffer<float, 3u>::doLoad() const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::LeafBuffer<unsigned int, 3u>::doLoad() const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::LeafBuffer<short, 3u>::doLoad() const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::LeafBuffer<float, 3u>::doLoad() const in libziran.a(AnalyticLevelSet.cpp.o)
      openvdb::v7_2::tree::LeafBuffer<unsigned int, 3u>::doLoad() const in libziran.a(AnalyticLevelSet.cpp.o)
      openvdb::v7_2::tree::LeafBuffer<short, 3u>::doLoad() const in libziran.a(AnalyticLevelSet.cpp.o)
      ...
  "openvdb::v7_2::io::bloscToStream(std::basic_ostream<char, std::char_traits<char> >&, char const*, unsigned long, unsigned long)", referenced from:
      void openvdb::v7_2::io::writeData<bool>(std::basic_ostream<char, std::char_traits<char> >&, bool const*, unsigned int, unsigned int) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::writeData<unsigned int>(std::basic_ostream<char, std::char_traits<char> >&, unsigned int const*, unsigned int, unsigned int) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::writeData<short>(std::basic_ostream<char, std::char_traits<char> >&, short const*, unsigned int, unsigned int) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::writeData<openvdb::v7_2::math::Vec3<float> >(std::basic_ostream<char, std::char_traits<char> >&, openvdb::v7_2::math::Vec3<float> const*, unsigned int, unsigned int) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::writeData<float>(std::basic_ostream<char, std::char_traits<char> >&, float const*, unsigned int, unsigned int) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::writeData<openvdb::v7_2::math::Vec3<half> >(std::basic_ostream<char, std::char_traits<char> >&, openvdb::v7_2::math::Vec3<half> const*, unsigned int, unsigned int) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::writeData<half>(std::basic_ostream<char, std::char_traits<char> >&, half const*, unsigned int, unsigned int) in libziran.a(VdbLevelSet.cpp.o)
      ...
  "openvdb::v7_2::io::bloscFromStream(std::basic_istream<char, std::char_traits<char> >&, char*, unsigned long)", referenced from:
      void openvdb::v7_2::io::readData<openvdb::v7_2::math::Vec3<float> >(std::basic_istream<char, std::char_traits<char> >&, openvdb::v7_2::math::Vec3<float>*, unsigned int, unsigned int, openvdb::v7_2::io::DelayedLoadMetadata*, unsigned long) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readData<openvdb::v7_2::math::Vec3<half> >(std::basic_istream<char, std::char_traits<char> >&, openvdb::v7_2::math::Vec3<half>*, unsigned int, unsigned int, openvdb::v7_2::io::DelayedLoadMetadata*, unsigned long) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readData<float>(std::basic_istream<char, std::char_traits<char> >&, float*, unsigned int, unsigned int, openvdb::v7_2::io::DelayedLoadMetadata*, unsigned long) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readData<unsigned int>(std::basic_istream<char, std::char_traits<char> >&, unsigned int*, unsigned int, unsigned int, openvdb::v7_2::io::DelayedLoadMetadata*, unsigned long) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readData<half>(std::basic_istream<char, std::char_traits<char> >&, half*, unsigned int, unsigned int, openvdb::v7_2::io::DelayedLoadMetadata*, unsigned long) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readData<bool>(std::basic_istream<char, std::char_traits<char> >&, bool*, unsigned int, unsigned int, openvdb::v7_2::io::DelayedLoadMetadata*, unsigned long) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readData<short>(std::basic_istream<char, std::char_traits<char> >&, short*, unsigned int, unsigned int, openvdb::v7_2::io::DelayedLoadMetadata*, unsigned long) in libziran.a(VdbLevelSet.cpp.o)
      ...
  "openvdb::v7_2::io::unzipFromStream(std::basic_istream<char, std::char_traits<char> >&, char*, unsigned long)", referenced from:
      void openvdb::v7_2::io::readData<openvdb::v7_2::math::Vec3<float> >(std::basic_istream<char, std::char_traits<char> >&, openvdb::v7_2::math::Vec3<float>*, unsigned int, unsigned int, openvdb::v7_2::io::DelayedLoadMetadata*, unsigned long) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readData<openvdb::v7_2::math::Vec3<half> >(std::basic_istream<char, std::char_traits<char> >&, openvdb::v7_2::math::Vec3<half>*, unsigned int, unsigned int, openvdb::v7_2::io::DelayedLoadMetadata*, unsigned long) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readData<float>(std::basic_istream<char, std::char_traits<char> >&, float*, unsigned int, unsigned int, openvdb::v7_2::io::DelayedLoadMetadata*, unsigned long) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readData<unsigned int>(std::basic_istream<char, std::char_traits<char> >&, unsigned int*, unsigned int, unsigned int, openvdb::v7_2::io::DelayedLoadMetadata*, unsigned long) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readData<half>(std::basic_istream<char, std::char_traits<char> >&, half*, unsigned int, unsigned int, openvdb::v7_2::io::DelayedLoadMetadata*, unsigned long) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readData<bool>(std::basic_istream<char, std::char_traits<char> >&, bool*, unsigned int, unsigned int, openvdb::v7_2::io::DelayedLoadMetadata*, unsigned long) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readData<short>(std::basic_istream<char, std::char_traits<char> >&, short*, unsigned int, unsigned int, openvdb::v7_2::io::DelayedLoadMetadata*, unsigned long) in libziran.a(VdbLevelSet.cpp.o)
      ...
  "openvdb::v7_2::io::getFormatVersion(std::ios_base&)", referenced from:
      void openvdb::v7_2::io::readCompressedValues<openvdb::v7_2::math::Vec3<float>, openvdb::v7_2::util::NodeMask<3u> >(std::basic_istream<char, std::char_traits<char> >&, openvdb::v7_2::math::Vec3<float>*, unsigned int, openvdb::v7_2::util::NodeMask<3u> const&, bool) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readCompressedValues<float, openvdb::v7_2::util::NodeMask<3u> >(std::basic_istream<char, std::char_traits<char> >&, float*, unsigned int, openvdb::v7_2::util::NodeMask<3u> const&, bool) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readCompressedValues<unsigned int, openvdb::v7_2::util::NodeMask<3u> >(std::basic_istream<char, std::char_traits<char> >&, unsigned int*, unsigned int, openvdb::v7_2::util::NodeMask<3u> const&, bool) in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::Grid<openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<openvdb::v7_2::math::Vec3<float>, 3u>, 4u>, 5u> > > >::readBuffers(std::basic_istream<char, std::char_traits<char> >&) in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::Grid<openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<openvdb::v7_2::math::Vec3<float>, 3u>, 4u>, 5u> > > >::readBuffers(std::basic_istream<char, std::char_traits<char> >&, openvdb::v7_2::math::CoordBBox const&) in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<bool, 3u>, 4u>, 5u> >::readTopology(std::basic_istream<char, std::char_traits<char> >&, bool) in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<unsigned int, 3u>, 4u>, 5u> >::readTopology(std::basic_istream<char, std::char_traits<char> >&, bool) in libziran.a(VdbLevelSet.cpp.o)
      ...
  "openvdb::v7_2::io::getMappedFilePtr(std::ios_base&)", referenced from:
      openvdb::v7_2::tree::LeafNode<unsigned int, 3u>::readBuffers(std::basic_istream<char, std::char_traits<char> >&, openvdb::v7_2::math::CoordBBox const&, bool) in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::LeafNode<short, 3u>::readBuffers(std::basic_istream<char, std::char_traits<char> >&, openvdb::v7_2::math::CoordBBox const&, bool) in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::LeafNode<openvdb::v7_2::math::Vec3<float>, 3u>::readBuffers(std::basic_istream<char, std::char_traits<char> >&, openvdb::v7_2::math::CoordBBox const&, bool) in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::LeafNode<float, 3u>::readBuffers(std::basic_istream<char, std::char_traits<char> >&, openvdb::v7_2::math::CoordBBox const&, bool) in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::LeafNode<unsigned int, 3u>::readBuffers(std::basic_istream<char, std::char_traits<char> >&, openvdb::v7_2::math::CoordBBox const&, bool) in libziran.a(AnalyticLevelSet.cpp.o)
      openvdb::v7_2::tree::LeafNode<short, 3u>::readBuffers(std::basic_istream<char, std::char_traits<char> >&, openvdb::v7_2::math::CoordBBox const&, bool) in libziran.a(AnalyticLevelSet.cpp.o)
      openvdb::v7_2::tree::LeafNode<float, 3u>::readBuffers(std::basic_istream<char, std::char_traits<char> >&, openvdb::v7_2::math::CoordBBox const&, bool) in libziran.a(AnalyticLevelSet.cpp.o)
      ...
  "openvdb::v7_2::io::getDataCompression(std::ios_base&)", referenced from:
      void openvdb::v7_2::io::readCompressedValues<openvdb::v7_2::math::Vec3<float>, openvdb::v7_2::util::NodeMask<3u> >(std::basic_istream<char, std::char_traits<char> >&, openvdb::v7_2::math::Vec3<float>*, unsigned int, openvdb::v7_2::util::NodeMask<3u> const&, bool) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readCompressedValues<float, openvdb::v7_2::util::NodeMask<3u> >(std::basic_istream<char, std::char_traits<char> >&, float*, unsigned int, openvdb::v7_2::util::NodeMask<3u> const&, bool) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readCompressedValues<unsigned int, openvdb::v7_2::util::NodeMask<3u> >(std::basic_istream<char, std::char_traits<char> >&, unsigned int*, unsigned int, openvdb::v7_2::util::NodeMask<3u> const&, bool) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readCompressedValues<bool, openvdb::v7_2::util::NodeMask<5u> >(std::basic_istream<char, std::char_traits<char> >&, bool*, unsigned int, openvdb::v7_2::util::NodeMask<5u> const&, bool) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::writeCompressedValues<bool, openvdb::v7_2::util::NodeMask<5u> >(std::basic_ostream<char, std::char_traits<char> >&, bool*, unsigned int, openvdb::v7_2::util::NodeMask<5u> const&, openvdb::v7_2::util::NodeMask<5u> const&, bool) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readCompressedValues<unsigned int, openvdb::v7_2::util::NodeMask<5u> >(std::basic_istream<char, std::char_traits<char> >&, unsigned int*, unsigned int, openvdb::v7_2::util::NodeMask<5u> const&, bool) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::writeCompressedValues<unsigned int, openvdb::v7_2::util::NodeMask<5u> >(std::basic_ostream<char, std::char_traits<char> >&, unsigned int*, unsigned int, openvdb::v7_2::util::NodeMask<5u> const&, openvdb::v7_2::util::NodeMask<5u> const&, bool) in libziran.a(VdbLevelSet.cpp.o)
      ...
  "openvdb::v7_2::io::getStreamMetadataPtr(std::ios_base&)", referenced from:
      void openvdb::v7_2::io::readCompressedValues<openvdb::v7_2::math::Vec3<float>, openvdb::v7_2::util::NodeMask<3u> >(std::basic_istream<char, std::char_traits<char> >&, openvdb::v7_2::math::Vec3<float>*, unsigned int, openvdb::v7_2::util::NodeMask<3u> const&, bool) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readData<openvdb::v7_2::math::Vec3<float> >(std::basic_istream<char, std::char_traits<char> >&, openvdb::v7_2::math::Vec3<float>*, unsigned int, unsigned int, openvdb::v7_2::io::DelayedLoadMetadata*, unsigned long) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readData<openvdb::v7_2::math::Vec3<half> >(std::basic_istream<char, std::char_traits<char> >&, openvdb::v7_2::math::Vec3<half>*, unsigned int, unsigned int, openvdb::v7_2::io::DelayedLoadMetadata*, unsigned long) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readCompressedValues<float, openvdb::v7_2::util::NodeMask<3u> >(std::basic_istream<char, std::char_traits<char> >&, float*, unsigned int, openvdb::v7_2::util::NodeMask<3u> const&, bool) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readCompressedValues<unsigned int, openvdb::v7_2::util::NodeMask<3u> >(std::basic_istream<char, std::char_traits<char> >&, unsigned int*, unsigned int, openvdb::v7_2::util::NodeMask<3u> const&, bool) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readData<float>(std::basic_istream<char, std::char_traits<char> >&, float*, unsigned int, unsigned int, openvdb::v7_2::io::DelayedLoadMetadata*, unsigned long) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readData<unsigned int>(std::basic_istream<char, std::char_traits<char> >&, unsigned int*, unsigned int, unsigned int, openvdb::v7_2::io::DelayedLoadMetadata*, unsigned long) in libziran.a(VdbLevelSet.cpp.o)
      ...
  "openvdb::v7_2::io::setStreamMetadataPtr(std::ios_base&, std::shared_ptr<openvdb::v7_2::io::StreamMetadata>&, bool)", referenced from:
      openvdb::v7_2::tree::LeafBuffer<openvdb::v7_2::math::Vec3<float>, 3u>::doLoad() const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::LeafBuffer<float, 3u>::doLoad() const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::LeafBuffer<unsigned int, 3u>::doLoad() const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::LeafBuffer<short, 3u>::doLoad() const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::LeafBuffer<float, 3u>::doLoad() const in libziran.a(AnalyticLevelSet.cpp.o)
      openvdb::v7_2::tree::LeafBuffer<unsigned int, 3u>::doLoad() const in libziran.a(AnalyticLevelSet.cpp.o)
      openvdb::v7_2::tree::LeafBuffer<short, 3u>::doLoad() const in libziran.a(AnalyticLevelSet.cpp.o)
      ...
  "openvdb::v7_2::io::getGridBackgroundValuePtr(std::ios_base&)", referenced from:
      void openvdb::v7_2::io::readCompressedValues<openvdb::v7_2::math::Vec3<float>, openvdb::v7_2::util::NodeMask<3u> >(std::basic_istream<char, std::char_traits<char> >&, openvdb::v7_2::math::Vec3<float>*, unsigned int, openvdb::v7_2::util::NodeMask<3u> const&, bool) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readCompressedValues<float, openvdb::v7_2::util::NodeMask<3u> >(std::basic_istream<char, std::char_traits<char> >&, float*, unsigned int, openvdb::v7_2::util::NodeMask<3u> const&, bool) in libziran.a(VdbLevelSet.cpp.o)
      void openvdb::v7_2::io::readCompressedValues<unsigned int, openvdb::v7_2::util::NodeMask<3u> >(std::basic_istream<char, std::char_traits<char> >&, unsigned int*, unsigned int, openvdb::v7_2::util::NodeMask<3u> const&, bool) in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<bool, 3u>, 4u>, 5u>::readTopology(std::basic_istream<char, std::char_traits<char> >&, bool) in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<bool, 3u>, 4u>, 5u>::readBuffers(std::basic_istream<char, std::char_traits<char> >&, openvdb::v7_2::math::CoordBBox const&, bool) in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<unsigned int, 3u>, 4u>, 5u>::readTopology(std::basic_istream<char, std::char_traits<char> >&, bool) in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<unsigned int, 3u>, 4u>, 5u>::readBuffers(std::basic_istream<char, std::char_traits<char> >&, openvdb::v7_2::math::CoordBBox const&, bool) in libziran.a(VdbLevelSet.cpp.o)
      ...
  "openvdb::v7_2::io::setGridBackgroundValuePtr(std::ios_base&, void const*)", referenced from:
      openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<bool, 3u>, 4u>, 5u> >::readTopology(std::basic_istream<char, std::char_traits<char> >&, bool) in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<bool, 3u>, 4u>, 5u> >::writeTopology(std::basic_ostream<char, std::char_traits<char> >&, bool) const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<unsigned int, 3u>, 4u>, 5u> >::readTopology(std::basic_istream<char, std::char_traits<char> >&, bool) in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<unsigned int, 3u>, 4u>, 5u> >::writeTopology(std::basic_ostream<char, std::char_traits<char> >&, bool) const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<short, 3u>, 4u>, 5u> >::readTopology(std::basic_istream<char, std::char_traits<char> >&, bool) in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<short, 3u>, 4u>, 5u> >::writeTopology(std::basic_ostream<char, std::char_traits<char> >&, bool) const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<openvdb::v7_2::math::Vec3<float>, 3u>, 4u>, 5u> >::readTopology(std::basic_istream<char, std::char_traits<char> >&, bool) in libziran.a(VdbLevelSet.cpp.o)
      ...
  "openvdb::v7_2::io::File::open(bool, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)> const&)", referenced from:
      ZIRAN::VdbLevelSet<float, 2>::constructFromVdbFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libziran.a(VdbLevelSet.cpp.o)
      ZIRAN::VdbLevelSet<float, 3>::constructFromVdbFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libziran.a(VdbLevelSet.cpp.o)
      ZIRAN::VdbLevelSet<double, 2>::constructFromVdbFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libziran.a(VdbLevelSet.cpp.o)
      ZIRAN::VdbLevelSet<double, 3>::constructFromVdbFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libziran.a(VdbLevelSet.cpp.o)
  "openvdb::v7_2::io::File::File(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
      ZIRAN::VdbLevelSet<float, 2>::constructFromVdbFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libziran.a(VdbLevelSet.cpp.o)
      ZIRAN::VdbLevelSet<float, 3>::constructFromVdbFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libziran.a(VdbLevelSet.cpp.o)
      ZIRAN::VdbLevelSet<double, 2>::constructFromVdbFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libziran.a(VdbLevelSet.cpp.o)
      ZIRAN::VdbLevelSet<double, 3>::constructFromVdbFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libziran.a(VdbLevelSet.cpp.o)
  "openvdb::v7_2::math::simplify(std::shared_ptr<openvdb::v7_2::math::AffineMap>)", referenced from:
      openvdb::v7_2::math::AffineMap::preRotate(double, openvdb::v7_2::math::Axis) const in main.cpp.o
      openvdb::v7_2::math::AffineMap::preShear(double, openvdb::v7_2::math::Axis, openvdb::v7_2::math::Axis) const in main.cpp.o
      openvdb::v7_2::math::AffineMap::postRotate(double, openvdb::v7_2::math::Axis) const in main.cpp.o
      openvdb::v7_2::math::AffineMap::postShear(double, openvdb::v7_2::math::Axis, openvdb::v7_2::math::Axis) const in main.cpp.o
      openvdb::v7_2::math::ScaleMap::preRotate(double, openvdb::v7_2::math::Axis) const in main.cpp.o
      openvdb::v7_2::math::ScaleMap::preShear(double, openvdb::v7_2::math::Axis, openvdb::v7_2::math::Axis) const in main.cpp.o
      openvdb::v7_2::math::ScaleMap::postRotate(double, openvdb::v7_2::math::Axis) const in main.cpp.o
      ...
  "openvdb::v7_2::math::Transform::Transform(std::shared_ptr<openvdb::v7_2::math::MapBase> const&)", referenced from:
      openvdb::v7_2::math::Transform::copy() const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tools::gridop::GridOperator<openvdb::v7_2::Grid<openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<float, 3u>, 4u>, 5u> > > >, openvdb::v7_2::Grid<openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<openvdb::v7_2::ValueMask, 3u>, 4u>, 5u> > > >, openvdb::v7_2::Grid<openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<openvdb::v7_2::math::Vec3<float>, 3u>, 4u>, 5u> > > >, openvdb::v7_2::math::UniformScaleMap, openvdb::v7_2::math::Gradient<openvdb::v7_2::math::UniformScaleMap, (openvdb::v7_2::math::DScheme)1>, openvdb::v7_2::util::NullInterrupter>::process(bool) in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tools::gridop::GridOperator<openvdb::v7_2::Grid<openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<float, 3u>, 4u>, 5u> > > >, openvdb::v7_2::Grid<openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<openvdb::v7_2::ValueMask, 3u>, 4u>, 5u> > > >, openvdb::v7_2::Grid<openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<openvdb::v7_2::math::Vec3<float>, 3u>, 4u>, 5u> > > >, openvdb::v7_2::math::UniformScaleTranslateMap, openvdb::v7_2::math::Gradient<openvdb::v7_2::math::UniformScaleTranslateMap, (openvdb::v7_2::math::DScheme)1>, openvdb::v7_2::util::NullInterrupter>::process(bool) in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tools::gridop::GridOperator<openvdb::v7_2::Grid<openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<float, 3u>, 4u>, 5u> > > >, openvdb::v7_2::Grid<openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<openvdb::v7_2::ValueMask, 3u>, 4u>, 5u> > > >, openvdb::v7_2::Grid<openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<openvdb::v7_2::math::Vec3<float>, 3u>, 4u>, 5u> > > >, openvdb::v7_2::math::ScaleMap, openvdb::v7_2::math::Gradient<openvdb::v7_2::math::ScaleMap, (openvdb::v7_2::math::DScheme)1>, openvdb::v7_2::util::NullInterrupter>::process(bool) in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tools::gridop::GridOperator<openvdb::v7_2::Grid<openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<float, 3u>, 4u>, 5u> > > >, openvdb::v7_2::Grid<openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<openvdb::v7_2::ValueMask, 3u>, 4u>, 5u> > > >, openvdb::v7_2::Grid<openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<openvdb::v7_2::math::Vec3<float>, 3u>, 4u>, 5u> > > >, openvdb::v7_2::math::ScaleTranslateMap, openvdb::v7_2::math::Gradient<openvdb::v7_2::math::ScaleTranslateMap, (openvdb::v7_2::math::DScheme)1>, openvdb::v7_2::util::NullInterrupter>::process(bool) in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tools::gridop::GridOperator<openvdb::v7_2::Grid<openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<float, 3u>, 4u>, 5u> > > >, openvdb::v7_2::Grid<openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<openvdb::v7_2::ValueMask, 3u>, 4u>, 5u> > > >, openvdb::v7_2::Grid<openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<openvdb::v7_2::math::Vec3<float>, 3u>, 4u>, 5u> > > >, openvdb::v7_2::math::UnitaryMap, openvdb::v7_2::math::Gradient<openvdb::v7_2::math::UnitaryMap, (openvdb::v7_2::math::DScheme)1>, openvdb::v7_2::util::NullInterrupter>::process(bool) in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tools::gridop::GridOperator<openvdb::v7_2::Grid<openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<float, 3u>, 4u>, 5u> > > >, openvdb::v7_2::Grid<openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<openvdb::v7_2::ValueMask, 3u>, 4u>, 5u> > > >, openvdb::v7_2::Grid<openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<openvdb::v7_2::math::Vec3<float>, 3u>, 4u>, 5u> > > >, openvdb::v7_2::math::AffineMap, openvdb::v7_2::math::Gradient<openvdb::v7_2::math::AffineMap, (openvdb::v7_2::math::DScheme)1>, openvdb::v7_2::util::NullInterrupter>::process(bool) in libziran.a(VdbLevelSet.cpp.o)
      ...
  "openvdb::v7_2::util::printBytes(std::basic_ostream<char, std::char_traits<char> >&, unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, int, int)", referenced from:
      openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<bool, 3u>, 4u>, 5u> > >::print(std::basic_ostream<char, std::char_traits<char> >&, int) const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<unsigned int, 3u>, 4u>, 5u> > >::print(std::basic_ostream<char, std::char_traits<char> >&, int) const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<short, 3u>, 4u>, 5u> > >::print(std::basic_ostream<char, std::char_traits<char> >&, int) const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<openvdb::v7_2::math::Vec3<float>, 3u>, 4u>, 5u> > >::print(std::basic_ostream<char, std::char_traits<char> >&, int) const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<float, 3u>, 4u>, 5u> > >::print(std::basic_ostream<char, std::char_traits<char> >&, int) const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<bool, 3u>, 4u>, 5u> > >::print(std::basic_ostream<char, std::char_traits<char> >&, int) const in libziran.a(AnalyticLevelSet.cpp.o)
      openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<unsigned int, 3u>, 4u>, 5u> > >::print(std::basic_ostream<char, std::char_traits<char> >&, int) const in libziran.a(AnalyticLevelSet.cpp.o)
      ...
  "openvdb::v7_2::Metadata::createMetadata(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
      openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<bool, 3u>, 4u>, 5u> > >::getBackgroundValue() const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<unsigned int, 3u>, 4u>, 5u> > >::getBackgroundValue() const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<short, 3u>, 4u>, 5u> > >::getBackgroundValue() const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<openvdb::v7_2::math::Vec3<float>, 3u>, 4u>, 5u> > >::getBackgroundValue() const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<float, 3u>, 4u>, 5u> > >::getBackgroundValue() const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<bool, 3u>, 4u>, 5u> > >::getBackgroundValue() const in libziran.a(AnalyticLevelSet.cpp.o)
      openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<unsigned int, 3u>, 4u>, 5u> > >::getBackgroundValue() const in libziran.a(AnalyticLevelSet.cpp.o)
      ...
  "openvdb::v7_2::Metadata::isRegisteredType(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
      openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<bool, 3u>, 4u>, 5u> > >::getBackgroundValue() const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<unsigned int, 3u>, 4u>, 5u> > >::getBackgroundValue() const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<short, 3u>, 4u>, 5u> > >::getBackgroundValue() const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<openvdb::v7_2::math::Vec3<float>, 3u>, 4u>, 5u> > >::getBackgroundValue() const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<float, 3u>, 4u>, 5u> > >::getBackgroundValue() const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<bool, 3u>, 4u>, 5u> > >::getBackgroundValue() const in libziran.a(AnalyticLevelSet.cpp.o)
      openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<unsigned int, 3u>, 4u>, 5u> > >::getBackgroundValue() const in libziran.a(AnalyticLevelSet.cpp.o)
      ...
  "openvdb::v7_2::math::Transform::print(std::basic_ostream<char, std::char_traits<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const", referenced from:
      openvdb::v7_2::Grid<openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<openvdb::v7_2::math::Vec3<float>, 3u>, 4u>, 5u> > > >::print(std::basic_ostream<char, std::char_traits<char> >&, int) const in libziran.a(VdbLevelSet.cpp.o)
      openvdb::v7_2::Grid<openvdb::v7_2::tree::Tree<openvdb::v7_2::tree::RootNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::InternalNode<openvdb::v7_2::tree::LeafNode<float, 3u>, 4u>, 5u> > > >::print(std::basic_ostream<char, std::char_traits<char> >&, int) const in libziran.a(AnalyticLevelSet.cpp.o)
ld: symbol(s) not found for architecture x86_64