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

Keep facing error: no viable overloaded '-=' #267

Open
m-vt opened this issue Mar 14, 2023 · 1 comment
Open

Keep facing error: no viable overloaded '-=' #267

m-vt opened this issue Mar 14, 2023 · 1 comment

Comments

@m-vt
Copy link

m-vt commented Mar 14, 2023

Hi,
I followed the installaion instruction in Theia-sfm.org.
first step (cmake ..) run successfully, but keep facing "TheiaSfM/libraries/akaze/src/nldiffusion_functions.cpp:267:47: error: no viable overloaded '-='" while running make -j4.

Note that I am on macOS Pro M1 chip Ventura 13.2.1.
cmake version 3.25.3
eigen 3.4.0_1
ceres-solver 2.1.0_3
openimageio 2.4.9.0_1
rocksdb 7.10.2
libomp 15.0.7

I also replace the line (libraries/akaze/src/nldiffusion_functions.cpp) :

x_kernel_mul(x_kernel_clamped_size - 1) -= x_kernel_mul.sum() - x_kernel_size;

with the following code:

x_kernel_mul(x_kernel_clamped_size - 1) = x_kernel_mul(x_kernel_clamped_size - 1) - (x_kernel_mul.sum() - x_kernel_size);

But then I kept facing the below error :
"error: invalid operands to binary expression ('typename internal::enable_if<IsRowMajor && (!(internal::get_compile_time_incr<typename IvcType::type>::value == 1 || internal::is_valid_index_type::value)), IndexedView<Matrix<float, 1, -1, 1>, IvcIndex, typename IvcType::type>>::type' (aka 'Eigen::IndexedView<Eigen::Matrix<float, 1, -1, 1>, Eigen::internal::SingleRange, double>') and 'Eigen::DenseBase<Eigen::Matrix<float, 1, -1, 1>>::Scalar' (aka 'float'))"

Does anybody have any suggestions?
in the following it is my cmake build run info:

(base) MacOS@MacOS-MBP build % cmake ..                                                                      
CMake Deprecation Warning at 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 <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- The C compiler identification is AppleClang 14.0.0.14000029
-- The CXX compiler identification is AppleClang 14.0.0.14000029
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- No preference for use of exported Eigen CMake configuration set, and no hints for include directory provided. Defaulting to preferring an installed/exported Eigen CMake configuration if available.
-- Found installed version of Eigen: /opt/homebrew/share/eigen3/cmake
-- Found Eigen: /opt/homebrew/include/eigen3 (found suitable version "3.4.0", minimum required is "3.2.0") 
-- Found Eigen version 3.4.0: /opt/homebrew/include/eigen3
-- Performing Test HAVE_RETURN_TYPE_C_LINKAGE
-- Performing Test HAVE_RETURN_TYPE_C_LINKAGE - Success
-- No preference for use of exported gflags CMake configuration set, and no hints for include/library directories provided. Defaulting to preferring an installed/exported gflags CMake configuration if available.
-- Found installed version of gflags: /opt/homebrew/lib/cmake/gflags
-- Detected gflags version: 2.2.2
-- Found Gflags: /opt/homebrew/include  
-- Found Google Flags: /opt/homebrew/include in namespace: google
-- Check for Google Log
-- No preference for use of exported glog CMake configuration set, and no hints for include/library directories provided. Defaulting to preferring an installed/exported glog CMake configuration if available.
-- Found installed version of glog: /opt/homebrew/lib/cmake/glog
-- Detected glog version: 0.6.0
-- Found Glog: glog::glog  
-- Found Google Logging: 
-- Check for Ceres
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Found CXSparse: /opt/homebrew/include (found suitable version "4.0.3", minimum required is "4.0.3") 
-- Found AMD headers in: /opt/homebrew/include
-- Found AMD library: /opt/homebrew/lib/libamd.dylib
-- Found CAMD headers in: /opt/homebrew/include
-- Found CAMD library: /opt/homebrew/lib/libcamd.dylib
-- Found CCOLAMD headers in: /opt/homebrew/include
-- Found CCOLAMD library: /opt/homebrew/lib/libccolamd.dylib
-- Found CHOLMOD headers in: /opt/homebrew/include
-- Found CHOLMOD library: /opt/homebrew/lib/libcholmod.dylib
-- Found COLAMD headers in: /opt/homebrew/include
-- Found COLAMD library: /opt/homebrew/lib/libcolamd.dylib
-- Found SPQR headers in: /opt/homebrew/include
-- Found SPQR library: /opt/homebrew/lib/libspqr.dylib
-- Found Config headers in: /opt/homebrew/include
-- Found Config library: /opt/homebrew/lib/libsuitesparseconfig.dylib
-- Found Intel Thread Building Blocks (TBB) library (2021.8 / ) include location: . Assuming SuiteSparseQR was compiled with TBB.
-- Looking for shm_open in rt
-- Looking for shm_open in rt - not found
-- Could not find librt, but found SuiteSparse_config, assuming that SuiteSparse was compiled without timing.
-- Found METIS: /opt/homebrew/include (found version "5.1.0") 
-- Found SuiteSparse: /opt/homebrew/include (found suitable version "7.0.1", minimum required is "7.0.0") found components: AMD CAMD CCOLAMD CHOLMOD COLAMD SPQR Config 
-- Found required Ceres dependency: Eigen version 3.4.0 in /opt/homebrew/share/eigen3/cmake
-- Found required Ceres dependency: glog
-- Found required Ceres dependency: gflags
-- Found Ceres version: 2.1.0 installed in: /opt/homebrew with components: [EigenSparse, SparseLinearAlgebraLibrary, LAPACK, SuiteSparse, CXSparse, AccelerateSparse, SchurSpecializations, Multithreading]
-- Found Ceres: 
-- Check for OpenImageIO
-- Found OpenImageIO: /opt/homebrew/include  
-- Found OpenImageIO: /opt/homebrew/include
-- Found AMD headers in: /opt/homebrew/include
-- Found AMD library: /opt/homebrew/lib/libamd.dylib
-- Found CAMD headers in: /opt/homebrew/include
-- Found CAMD library: /opt/homebrew/lib/libcamd.dylib
-- Found COLAMD headers in: /opt/homebrew/include
-- Found COLAMD library: /opt/homebrew/lib/libcolamd.dylib
-- Found CCOLAMD headers in: /opt/homebrew/include
-- Found CCOLAMD library: /opt/homebrew/lib/libccolamd.dylib
-- Found CHOLMOD headers in: /opt/homebrew/include
-- Found CHOLMOD library: /opt/homebrew/lib/libcholmod.dylib
-- Found SUITESPARSEQR headers in: /opt/homebrew/include
-- Found SUITESPARSEQR library: /opt/homebrew/lib/libspqr.dylib
-- Found TBB library: /opt/homebrew/lib/libtbb.dylib
-- Found Intel Thread Building Blocks (TBB) library: /opt/homebrew/lib/libtbb.dylib, assuming SuiteSparseQR was compiled with TBB.
-- Found TBB_MALLOC library: /opt/homebrew/lib/libtbbmalloc.dylib
-- Found Intel Thread Building Blocks (TBB) Malloc library: /opt/homebrew/lib/libtbbmalloc.dylib
-- Found SUITESPARSE_CONFIG headers in: /opt/homebrew/include
-- Found SUITESPARSE_CONFIG library: /opt/homebrew/lib/libsuitesparseconfig.dylib
-- Found METIS library: debug;/opt/homebrew/lib/libmetis.dylib;optimized;/opt/homebrew/lib/libmetis.dylib
-- Found SuiteSparse: TRUE (found version "..") 
-- Found SuiteSparse ..
-- Check for RocksDB
-- Found RocksDB: /opt/homebrew/lib/librocksdb.dylib  
-- Found RocksDB
-- Found RocksDB: /opt/homebrew/include
-- Check for RapidJSON
-- RapidJSON found. Headers: /opt/homebrew/Cellar/rapidjson/1.1.0/include
-- Found RapidJSON: /opt/homebrew/Cellar/rapidjson/1.1.0/include
CMake Deprecation Warning at libraries/gtest/CMakeLists.txt:48 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

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


-- Found PythonInterp: /Users/user/opt/anaconda3/bin/python (found version "3.9.12") 
CMake Deprecation Warning at libraries/akaze/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 <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- Found installed version of Eigen: /opt/homebrew/share/eigen3/cmake
-- Found Eigen: /opt/homebrew/include/eigen3 (found version "3.4.0") 
-- Found Eigen version 3.4.0: /opt/homebrew/include/eigen3
CMake Deprecation Warning at libraries/akaze/cimg/CMakeLists.txt:5 (CMAKE_MINIMUM_REQUIRED):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

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


-- Compiler is Clang, disabling OpenMP.
-- Found JPEG: /opt/homebrew/lib/libjpeg.dylib (found version "80") 
-- Building without OpenMP.
-- No build type specified; defaulting to CMAKE_BUILD_TYPE=Release.
-- Performing Test HAVE_LTO_SUPPORT
-- Performing Test HAVE_LTO_SUPPORT - Success
-- Enabling link-time optimization (-flto)
-- Performing Test COMPILER_HAS_CXX11_FLAG
-- Performing Test COMPILER_HAS_CXX11_FLAG - Success
CMake Deprecation Warning at libraries/cereal/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 <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Deprecation Warning at libraries/flann/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 <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Deprecation Warning at libraries/flann/CMakeLists.txt:5 (cmake_policy):
  The OLD behavior for policy CMP0012 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.


-- HDF5 C compiler wrapper is unable to compile a minimal HDF5 program.
-- Found HDF5: /opt/homebrew/lib/libhdf5.dylib (found version "1.12.2")  
-- Found GTest: /Users/user/opt/anaconda3/lib/cmake/GTest/GTestConfig.cmake (found version "1.10.0")  
-- Found OpenMP_C: -Xpreprocessor -fopenmp -I/Users/user/opt/anaconda3/pkgs/llvm-openmp-12.0.0-haf9daa7_1/include (found version "5.0") 
-- Found OpenMP_CXX: -Xpreprocessor -fopenmp -I/Users/user/opt/anaconda3/pkgs/llvm-openmp-12.0.0-haf9daa7_1/include (found version "5.0") 
-- Found OpenMP: TRUE (found version "5.0")  
-- Install prefix: /usr/local
-- Build type: Release
-- Building C bindings: OFF
-- Building examples: OFF
-- Building tests: OFF
-- Building documentation: OFF
-- Building python bindings: OFF
-- Building matlab bindings: OFF
-- Building CUDA library: OFF
-- Using OpenMP support: ON
-- Using MPI support: OFF
CMake Deprecation Warning at libraries/optimo/CMakeLists.txt:32 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

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


CMake Deprecation Warning at libraries/optimo/CMakeLists.txt:33 (cmake_policy):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

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


-- CMAKE_CXX_FLAGS:  -Qunused-arguments -mllvm -inline-threshold=600 -Wno-return-type-c-linkage -std=c++11 -stdlib=libc++
-- Found installed version of Eigen: /opt/homebrew/share/eigen3/cmake
-- Found Eigen version 3.4.0: /opt/homebrew/include/eigen3
CMake Deprecation Warning at libraries/statx/CMakeLists.txt:32 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

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


CMake Deprecation Warning at libraries/statx/CMakeLists.txt:33 (cmake_policy):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

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


-- CMAKE_CXX_FLAGS:  -Qunused-arguments -mllvm -inline-threshold=600 -Wno-return-type-c-linkage -std=c++11 -stdlib=libc++
-- Default Install prefix: /usr/local/
-- Found installed version of Eigen: /opt/homebrew/share/eigen3/cmake
-- Found Eigen version 3.4.0: /opt/homebrew/include/eigen3
-- Found installed version of gflags: /opt/homebrew/lib/cmake/gflags
-- Detected gflags version: 2.2.2
-- Found installed version of glog: /opt/homebrew/lib/cmake/glog
-- Detected glog version: 0.6.0
-- Check for Google ceres-solver
-- Found AMD headers in: /opt/homebrew/include
-- Found AMD library: /opt/homebrew/lib/libamd.dylib
-- Found CAMD headers in: /opt/homebrew/include
-- Found CAMD library: /opt/homebrew/lib/libcamd.dylib
-- Found CCOLAMD headers in: /opt/homebrew/include
-- Found CCOLAMD library: /opt/homebrew/lib/libccolamd.dylib
-- Found CHOLMOD headers in: /opt/homebrew/include
-- Found CHOLMOD library: /opt/homebrew/lib/libcholmod.dylib
-- Found COLAMD headers in: /opt/homebrew/include
-- Found COLAMD library: /opt/homebrew/lib/libcolamd.dylib
-- Found SPQR headers in: /opt/homebrew/include
-- Found SPQR library: /opt/homebrew/lib/libspqr.dylib
-- Found Config headers in: /opt/homebrew/include
-- Found Config library: /opt/homebrew/lib/libsuitesparseconfig.dylib
-- Found Intel Thread Building Blocks (TBB) library (2021.8 / ) include location: . Assuming SuiteSparseQR was compiled with TBB.
-- Could not find librt, but found SuiteSparse_config, assuming that SuiteSparse was compiled without timing.
-- Found SuiteSparse: /opt/homebrew/include (found suitable version "7.0.1", minimum required is "7.0.0") found components: AMD CAMD CCOLAMD CHOLMOD COLAMD SPQR Config 
-- Found required Ceres dependency: Eigen version 3.4.0 in /opt/homebrew/share/eigen3/cmake
-- Found required Ceres dependency: glog
-- Found required Ceres dependency: gflags
-- Found Ceres version: 2.1.0 installed in: /opt/homebrew with components: [EigenSparse, SparseLinearAlgebraLibrary, LAPACK, SuiteSparse, CXSparse, AccelerateSparse, SchurSpecializations, Multithreading]
-- Found Ceres headers in: 
-- Found BLAS: /Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk/System/Library/Frameworks/Accelerate.framework  
-- Found LAPACK: /Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk/System/Library/Frameworks/Accelerate.framework;-lm;-ldl  
-- Check for Optimo
-- Found optimo headers: /Users/user/Desktop/TheiaSfM/libraries/optimo
-- Enabling link-time optimization (-flto)
-- Performing Test THEIA_HAVE_THREAD_LOCAL_STORAGE
-- Performing Test THEIA_HAVE_THREAD_LOCAL_STORAGE - Success
-- Enabling link-time optimization (-flto)
-- Found OpenGL: /Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk/System/Library/Frameworks/OpenGL.framework   
-- Found GLUT: /Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk/System/Library/Frameworks/GLUT.framework  
-- Found GLUT: /Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk/System/Library/Frameworks/GLUT.framework/Headers
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/user/Desktop/TheiaSfM/build
@wilsonkl
Copy link

wilsonkl commented Apr 3, 2023

How about a type cast? Change x_kernel_clamped_size - 1 to static_cast<int>(x_kernel_clamped_size - 1)?
Right now it's using a float as an index into an Eigen row vector.

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

2 participants