cvg / pixel-perfect-sfm

Pixel-Perfect Structure-from-Motion with Featuremetric Refinement (ICCV 2021, Best Student Paper Award)
Apache License 2.0
1.34k stars 139 forks source link

build failed: pixsfm/CMakeFiles/pypixsfm.dir/keypoint_adjustment/bindings.cc.o #9

Closed kenylai closed 2 years ago

kenylai commented 2 years ago

Building CXX object pixsfm/CMakeFiles/pypixsfm.dir/keypoint_adjustment/bindings.cc.o In file included from /work/pixel-perfect-sfm/pixsfm/keypoint_adjustment/src/featuremetric_keypoint_optimizer.h:8:0, from /work/pixel-perfect-sfm/pixsfm/keypoint_adjustment/bindings.cc:8: /work/pixel-perfect-sfm/pixsfm/base/src/parallel_optimizer.h:90:6: error: prototype for ‘std::unordered_map<long unsigned int, decltype (static_cast<Optimizer>(nullptr)->.RunSubset<Ns ...>(((pixsfm::ParallelOptimizer<Optimizer, idx_t>)this)->pixsfm::ParallelOptimizer<Optimizer, idx_t>::dummy, pixsfm::ParallelOptimizer::RunParallel::parameters ...))> pixsfm::ParallelOptimizer<Optimizer, idx_t>::RunParallel(std::vector, Param& ...)’ does not match any in class ‘pixsfm::ParallelOptimizer<Optimizer, idx_t>’ auto ParallelOptimizer<Optimizer, idx_t>::RunParallel( ^ /work/pixel-perfect-sfm/pixsfm/base/src/parallel_optimizer.h:78:8: error: candidate is: template<class Optimizer, class idx_t> template<int ...Ns, class ... Param> std::unordered_map<long unsigned int, decltype (static_cast<Optimizer>(nullptr)->.RunSubset<Ns ...>(((pixsfm::ParallelOptimizer<Optimizer, idx_t>)this)->pixsfm::ParallelOptimizer<Optimizer, idx_t>::dummy, pixsfm::ParallelOptimizer::RunParallel::parameters ...))> pixsfm::ParallelOptimizer<Optimizer, idx_t>::RunParallel(std::vector, Param& ...) auto RunParallel(std::vector problem_labels, Param&... parameters) ^ pixsfm/CMakeFiles/pypixsfm.dir/build.make:134: recipe for target 'pixsfm/CMakeFiles/pypixsfm.dir/keypoint_adjustment/bindings.cc.o' failed


gcc -v gcc version 4.8.5 (Ubuntu 4.8.5-4ubuntu8~16.04.1)

Phil26AT commented 2 years ago

Thank you for reporting this issue. We pushed a fix to branch fix-gcc-4-8-5. Please let us know if this solves your issue.

The problem was related to gcc Bug #57712, which seems to be fixed in gcc >7.1. When compiling the code on gcc 4.8.5, I also ran into gcc Bug #55914 which was solved in gcc >= 4.9. The proposed changes should allow to compile the repo with gcc 4.8.5, although note that latest COLMAP requires gcc 4.9 or above.

wolf943134497 commented 2 years ago

Hi @Phil26AT Thanks for your great work! my gcc version is 7.5 ubuntu16.04, I also meet the same problem.

sarlinpe commented 2 years ago

@wolf943134497 Can you please try out the branch fix-gcc-4-8-5 and report the full error log if any?

wolf943134497 commented 2 years ago

@Skydes Thanks for your quick reply. I try out the branch fix-gcc-4-8-5, but I meet the glog problem, so I use the main branch, and just change the pixsfm/base/src/parallel_optimizer.h file as the branch fix-gcc-4-8-5 did. error log: Obtaining file:///home/rui/gwm/proj/pixsfm/pixel-perfect-sfm Installing collected packages: pixsfm Running setup.py develop for pixsfm ERROR: Command errored out with exit status 1: command: /home/rui/anaconda3/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/setup.py'"'"'; file='"'"'/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' develop --no-deps cwd: /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/ Complete output (377 lines): running develop running egg_info writing pixsfm.egg-info/PKG-INFO writing dependency_links to pixsfm.egg-info/dependency_links.txt writing top-level names to pixsfm.egg-info/top_level.txt reading manifest file 'pixsfm.egg-info/SOURCES.txt' adding license file 'LICENSE' writing manifest file 'pixsfm.egg-info/SOURCES.txt' running build_ext -- Found installed version of Eigen: /usr/local/share/eigen3/cmake -- Found required Ceres dependency: Eigen version 3.3.7 in /usr/local/include/eigen3 -- Found installed version of glog: /usr/local/lib/cmake/glog -- Detected glog version: 0.6.0 -- Found required Ceres dependency: glog -- Found installed version of gflags: /usr/local/lib/cmake/gflags -- Detected gflags version: 2.2.2 -- Found required Ceres dependency: gflags -- Found Ceres version: 1.14.0 installed in: /usr/local with components: [EigenSparse, SparseLinearAlgebraLibrary, LAPACK, SuiteSparse, CXSparse, SchurSpecializations, OpenMP, Multithreading] -- Found Boost: /usr/include (found version "1.58.0") found components: program_options filesystem system unit_test_framework -- Found Eigen -- Includes : /usr/local/include/eigen3 -- Found FreeImage -- Includes : /usr/include -- Libraries : /usr/lib/x86_64-linux-gnu/libfreeimage.so -- Found Glog -- Includes : /usr/local/include -- Libraries : /usr/local/lib/libglog.so CMake Warning (dev) at /usr/local/share/cmake-3.17/Modules/FindOpenGL.cmake:305 (message): Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when available. Run "cmake --help-policy CMP0072" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

  FindOpenGL found both a legacy GL library:

    OPENGL_gl_LIBRARY: /usr/lib/x86_64-linux-gnu/libGL.so

  and GLVND libraries for OpenGL and GLX:

    OPENGL_opengl_LIBRARY: /usr/lib/x86_64-linux-gnu/libOpenGL.so
    OPENGL_glx_LIBRARY: /usr/lib/x86_64-linux-gnu/libGLX.so

  OpenGL_GL_PREFERENCE has not been set to "GLVND" or "LEGACY", so for
  compatibility with CMake 3.10 and below the legacy GL library will be used.
Call Stack (most recent call first):
  /usr/local/share/colmap/COLMAPConfig.cmake:102 (find_package)
  CMakeLists.txt:35 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found Glew
--   Includes : /usr/include
--   Libraries : /usr/lib/x86_64-linux-gnu/libGLEW.so
Compiling with AVX2 support.
-- HDF5: Using hdf5 compiler wrapper to determine C configuration
-- Found Boost: /usr/include (found version "1.58.0") found components: system serialization
-- pybind11 v2.8.1
-- Configuring done
-- Generating done
-- Build files have been written to: /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/build/temp.linux-x86_64-3.6
[ 43%] Built target pixsfm
Scanning dependencies of target pypixsfm
[ 50%] Building CXX object pixsfm/CMakeFiles/pypixsfm.dir/features/bindings.cc.o
[ 50%] Building CXX object pixsfm/CMakeFiles/pypixsfm.dir/keypoint_adjustment/bindings.cc.o
[ 53%] Building CXX object pixsfm/CMakeFiles/pypixsfm.dir/bundle_adjustment/bindings.cc.o
[ 56%] Building CXX object pixsfm/CMakeFiles/pypixsfm.dir/localization/bindings.cc.o
[ 59%] Building CXX object pixsfm/CMakeFiles/pypixsfm.dir/residuals/bindings.cc.o
In file included from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/interpolation.h:22:0,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featurepatch.h:20,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/dynamic_patch_interpolator.h:20,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/bindings.cc:12:
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/cubic_hermite_spline_simd.h: In function ‘__m256 pixsfm::_mm256_loadu_ps_T(const float*)’:
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/cubic_hermite_spline_simd.h:45:50: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
 inline __m256 _mm256_loadu_ps_T(const float* data) {
                                                  ^
In file included from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/interpolation.h:22:0,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featurepatch.h:20,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/residuals/src/feature_reference.h:8,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/residuals/bindings.cc:9:
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/cubic_hermite_spline_simd.h: In function ‘__m256 pixsfm::_mm256_loadu_ps_T(const float*)’:
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/cubic_hermite_spline_simd.h:45:50: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
 inline __m256 _mm256_loadu_ps_T(const float* data) {
                                                  ^
In file included from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/interpolation.h:22:0,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featurepatch.h:20,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h:24,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/bundle_adjustment/src/bundle_adjustment_options.h:19,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/bundle_adjustment/bindings.cc:7:
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/cubic_hermite_spline_simd.h: In function ‘__m256 pixsfm::_mm256_loadu_ps_T(const float*)’:
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/cubic_hermite_spline_simd.h:45:50: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
 inline __m256 _mm256_loadu_ps_T(const float* data) {
                                                  ^
In file included from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/interpolation.h:22:0,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featurepatch.h:20,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/dynamic_patch_interpolator.h:20,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/localization/src/nearest_references.h:10,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/localization/bindings.cc:7:
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/cubic_hermite_spline_simd.h: In function ‘__m256 pixsfm::_mm256_loadu_ps_T(const float*)’:
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/cubic_hermite_spline_simd.h:45:50: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
 inline __m256 _mm256_loadu_ps_T(const float* data) {
                                                  ^
In file included from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/interpolation.h:22:0,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featurepatch.h:20,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h:24,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/keypoint_adjustment/src/topological_keypoint_optimizer.h:16,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/keypoint_adjustment/src/featuremetric_keypoint_optimizer.h:2,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/keypoint_adjustment/bindings.cc:8:
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/cubic_hermite_spline_simd.h: In function ‘__m256 pixsfm::_mm256_loadu_ps_T(const float*)’:
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/cubic_hermite_spline_simd.h:45:50: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
 inline __m256 _mm256_loadu_ps_T(const float* data) {
                                                  ^
In file included from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featureset.h:26:0,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremanager.h:18,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/bindings.cc:13:
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h: In instantiation of ‘class pixsfm::FeatureMap<half_float::half>’:
/usr/include/c++/7/type_traits:710:12:   required from ‘struct std::is_polymorphic<pixsfm::FeatureMap<half_float::half> >’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/third-party/pybind11/include/pybind11/pybind11.h:1321:30:   required from ‘class pybind11::class_<pixsfm::FeatureMap<half_float::half> >’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/bindings.cc:84:7:   required from ‘void pixsfm::BindFeatureTemplate(pybind11::module&, std::__cxx11::string) [with dtype = half_float::half; pybind11::module = pybind11::module_; std::__cxx11::string = std::__cxx11::basic_string<char>]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/bindings.cc:290:41:   required from here
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h:32:7: warning: ‘pixsfm::FeatureMap<half_float::half>’ declared with greater visibility than the type of its field ‘pixsfm::FeatureMap<half_float::half>::reference_pyarray_’ [-Wattributes]
 class FeatureMap {
       ^~~~~~~~~~
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h: In instantiation of ‘class pixsfm::FeatureMap<double>’:
/usr/include/c++/7/type_traits:710:12:   required from ‘struct std::is_polymorphic<pixsfm::FeatureMap<double> >’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/third-party/pybind11/include/pybind11/pybind11.h:1321:30:   required from ‘class pybind11::class_<pixsfm::FeatureMap<double> >’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/bindings.cc:84:7:   required from ‘void pixsfm::BindFeatureTemplate(pybind11::module&, std::__cxx11::string) [with dtype = double; pybind11::module = pybind11::module_; std::__cxx11::string = std::__cxx11::basic_string<char>]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/bindings.cc:291:40:   required from here
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h:32:7: warning: ‘pixsfm::FeatureMap<double>’ declared with greater visibility than the type of its field ‘pixsfm::FeatureMap<double>::reference_pyarray_’ [-Wattributes]
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h: In instantiation of ‘class pixsfm::FeatureMap<float>’:
/usr/include/c++/7/type_traits:710:12:   required from ‘struct std::is_polymorphic<pixsfm::FeatureMap<float> >’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/third-party/pybind11/include/pybind11/pybind11.h:1321:30:   required from ‘class pybind11::class_<pixsfm::FeatureMap<float> >’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/bindings.cc:84:7:   required from ‘void pixsfm::BindFeatureTemplate(pybind11::module&, std::__cxx11::string) [with dtype = float; pybind11::module = pybind11::module_; std::__cxx11::string = std::__cxx11::basic_string<char>]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/bindings.cc:292:39:   required from here
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h:32:7: warning: ‘pixsfm::FeatureMap<float>’ declared with greater visibility than the type of its field ‘pixsfm::FeatureMap<float>::reference_pyarray_’ [-Wattributes]
In file included from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/localization/src/nearest_references.h:11:0,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/localization/bindings.cc:7:
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h: In instantiation of ‘class pixsfm::FeatureMap<half_float::half>’:
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/localization/src/single_query_bundle_optimizer.h:76:26:   required from ‘bool pixsfm::SingleQueryBundleOptimizer::RunQuery(Eigen::Ref<Eigen::Matrix<double, 4, 1> >&, Eigen::Ref<Eigen::Matrix<double, 3, 1> >&, colmap::Camera&, std::vector<Eigen::Matrix<double, 3, 1> >&, pixsfm::FeatureMap<dtype>&, RefType&, std::vector<unsigned int>*, std::vector<bool>*) [with dtype = half_float::half; RefType = std::vector<pixsfm::Reference>]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/localization/bindings.cc:17:3:   required from ‘void pixsfm::BindSingleQueryBundleOptimizer(pybind11::class_<T>&) [with dtype = half_float::half; T = pixsfm::SingleQueryBundleOptimizer]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/localization/bindings.cc:99:47:   required from here
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h:32:7: warning: ‘pixsfm::FeatureMap<half_float::half>’ declared with greater visibility than the type of its field ‘pixsfm::FeatureMap<half_float::half>::reference_pyarray_’ [-Wattributes]
 class FeatureMap {
       ^~~~~~~~~~
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h: In instantiation of ‘class pixsfm::FeatureMap<float>’:
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/localization/src/single_query_bundle_optimizer.h:76:26:   required from ‘bool pixsfm::SingleQueryBundleOptimizer::RunQuery(Eigen::Ref<Eigen::Matrix<double, 4, 1> >&, Eigen::Ref<Eigen::Matrix<double, 3, 1> >&, colmap::Camera&, std::vector<Eigen::Matrix<double, 3, 1> >&, pixsfm::FeatureMap<dtype>&, RefType&, std::vector<unsigned int>*, std::vector<bool>*) [with dtype = float; RefType = std::vector<pixsfm::Reference>]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/localization/bindings.cc:17:3:   required from ‘void pixsfm::BindSingleQueryBundleOptimizer(pybind11::class_<T>&) [with dtype = float; T = pixsfm::SingleQueryBundleOptimizer]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/localization/bindings.cc:100:45:   required from here
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h:32:7: warning: ‘pixsfm::FeatureMap<float>’ declared with greater visibility than the type of its field ‘pixsfm::FeatureMap<float>::reference_pyarray_’ [-Wattributes]
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h: In instantiation of ‘class pixsfm::FeatureMap<double>’:
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/localization/src/single_query_bundle_optimizer.h:76:26:   required from ‘bool pixsfm::SingleQueryBundleOptimizer::RunQuery(Eigen::Ref<Eigen::Matrix<double, 4, 1> >&, Eigen::Ref<Eigen::Matrix<double, 3, 1> >&, colmap::Camera&, std::vector<Eigen::Matrix<double, 3, 1> >&, pixsfm::FeatureMap<dtype>&, RefType&, std::vector<unsigned int>*, std::vector<bool>*) [with dtype = double; RefType = std::vector<pixsfm::Reference>]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/localization/bindings.cc:17:3:   required from ‘void pixsfm::BindSingleQueryBundleOptimizer(pybind11::class_<T>&) [with dtype = double; T = pixsfm::SingleQueryBundleOptimizer]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/localization/bindings.cc:101:46:   required from here
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h:32:7: warning: ‘pixsfm::FeatureMap<double>’ declared with greater visibility than the type of its field ‘pixsfm::FeatureMap<double>::reference_pyarray_’ [-Wattributes]
In file included from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/bundle_adjustment/src/bundle_adjustment_options.h:19:0,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/bundle_adjustment/bindings.cc:7:
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h: In instantiation of ‘class pixsfm::FeatureMap<half_float::half>’:
/usr/include/c++/7/bits/stl_pair.h:215:11:   required from ‘struct std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<half_float::half> >’
/usr/include/c++/7/ext/aligned_buffer.h:85:34:   required from ‘struct __gnu_cxx::__aligned_buffer<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<half_float::half> > >’
/usr/include/c++/7/bits/hashtable_policy.h:248:43:   required from ‘struct std::__detail::_Hash_node_value_base<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<half_float::half> > >’
/usr/include/c++/7/bits/hashtable_policy.h:279:12:   required from ‘struct std::__detail::_Hash_node<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<half_float::half> >, true>’
/usr/include/c++/7/bits/hashtable_policy.h:2007:60:   required from ‘struct std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<half_float::half> >, true> > >’
/usr/include/c++/7/bits/hashtable.h:173:11:   required from ‘class std::_Hashtable<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<half_float::half> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<half_float::half> > >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char> >, std::hash<std::__cxx11::basic_string<char> >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >’
/usr/include/c++/7/bits/unordered_map.h:104:18:   required from ‘class std::unordered_map<std::__cxx11::basic_string<char>, pixsfm::FeatureMap<half_float::half>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<half_float::half> > > >’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featureset.h:96:24:   required from ‘class pixsfm::FeatureSet<half_float::half>’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/bundle_adjustment/src/reference_extractor.h:129:23:   required from ‘pixsfm::Refs pixsfm::ReferenceExtractor::Run(const std::vector<int>&, const colmap::Reconstruction*, pixsfm::FeatureSet<dtype>&) [with dtype = half_float::half; pixsfm::Refs = std::unordered_map<long unsigned int, pixsfm::Reference>]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/bundle_adjustment/bindings.cc:30:3:   required from ‘void pixsfm::BindReferenceExtractor(pybind11::class_<T>&) [with dtype = half_float::half; T = pixsfm::ReferenceExtractor]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/bundle_adjustment/bindings.cc:174:36:   required from here
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h:32:7: warning: ‘pixsfm::FeatureMap<half_float::half>’ declared with greater visibility than the type of its field ‘pixsfm::FeatureMap<half_float::half>::reference_pyarray_’ [-Wattributes]
 class FeatureMap {
       ^~~~~~~~~~
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h: In instantiation of ‘class pixsfm::FeatureMap<float>’:
/usr/include/c++/7/bits/stl_pair.h:215:11:   required from ‘struct std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<float> >’
/usr/include/c++/7/ext/aligned_buffer.h:85:34:   required from ‘struct __gnu_cxx::__aligned_buffer<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<float> > >’
/usr/include/c++/7/bits/hashtable_policy.h:248:43:   required from ‘struct std::__detail::_Hash_node_value_base<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<float> > >’
/usr/include/c++/7/bits/hashtable_policy.h:279:12:   required from ‘struct std::__detail::_Hash_node<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<float> >, true>’
/usr/include/c++/7/bits/hashtable_policy.h:2007:60:   required from ‘struct std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<float> >, true> > >’
/usr/include/c++/7/bits/hashtable.h:173:11:   required from ‘class std::_Hashtable<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<float> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<float> > >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char> >, std::hash<std::__cxx11::basic_string<char> >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >’
/usr/include/c++/7/bits/unordered_map.h:104:18:   required from ‘class std::unordered_map<std::__cxx11::basic_string<char>, pixsfm::FeatureMap<float>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<float> > > >’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featureset.h:96:24:   required from ‘class pixsfm::FeatureSet<float>’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/bundle_adjustment/src/reference_extractor.h:129:23:   required from ‘pixsfm::Refs pixsfm::ReferenceExtractor::Run(const std::vector<int>&, const colmap::Reconstruction*, pixsfm::FeatureSet<dtype>&) [with dtype = float; pixsfm::Refs = std::unordered_map<long unsigned int, pixsfm::Reference>]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/bundle_adjustment/bindings.cc:30:3:   required from ‘void pixsfm::BindReferenceExtractor(pybind11::class_<T>&) [with dtype = float; T = pixsfm::ReferenceExtractor]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/bundle_adjustment/bindings.cc:175:34:   required from here
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h:32:7: warning: ‘pixsfm::FeatureMap<float>’ declared with greater visibility than the type of its field ‘pixsfm::FeatureMap<float>::reference_pyarray_’ [-Wattributes]
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h: In instantiation of ‘class pixsfm::FeatureMap<double>’:
/usr/include/c++/7/bits/stl_pair.h:215:11:   required from ‘struct std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<double> >’
/usr/include/c++/7/ext/aligned_buffer.h:85:34:   required from ‘struct __gnu_cxx::__aligned_buffer<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<double> > >’
/usr/include/c++/7/bits/hashtable_policy.h:248:43:   required from ‘struct std::__detail::_Hash_node_value_base<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<double> > >’
/usr/include/c++/7/bits/hashtable_policy.h:279:12:   required from ‘struct std::__detail::_Hash_node<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<double> >, true>’
/usr/include/c++/7/bits/hashtable_policy.h:2007:60:   required from ‘struct std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<double> >, true> > >’
/usr/include/c++/7/bits/hashtable.h:173:11:   required from ‘class std::_Hashtable<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<double> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<double> > >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char> >, std::hash<std::__cxx11::basic_string<char> >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >’
/usr/include/c++/7/bits/unordered_map.h:104:18:   required from ‘class std::unordered_map<std::__cxx11::basic_string<char>, pixsfm::FeatureMap<double>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<double> > > >’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featureset.h:96:24:   required from ‘class pixsfm::FeatureSet<double>’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/bundle_adjustment/src/reference_extractor.h:129:23:   required from ‘pixsfm::Refs pixsfm::ReferenceExtractor::Run(const std::vector<int>&, const colmap::Reconstruction*, pixsfm::FeatureSet<dtype>&) [with dtype = double; pixsfm::Refs = std::unordered_map<long unsigned int, pixsfm::Reference>]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/bundle_adjustment/bindings.cc:30:3:   required from ‘void pixsfm::BindReferenceExtractor(pybind11::class_<T>&) [with dtype = double; T = pixsfm::ReferenceExtractor]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/bundle_adjustment/bindings.cc:176:35:   required from here
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h:32:7: warning: ‘pixsfm::FeatureMap<double>’ declared with greater visibility than the type of its field ‘pixsfm::FeatureMap<double>::reference_pyarray_’ [-Wattributes]
In file included from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/keypoint_adjustment/src/topological_keypoint_optimizer.h:16:0,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/keypoint_adjustment/src/featuremetric_keypoint_optimizer.h:2,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/keypoint_adjustment/bindings.cc:8:
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h: In instantiation of ‘class pixsfm::FeatureMap<half_float::half>’:
/usr/include/c++/7/bits/stl_pair.h:215:11:   required from ‘struct std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<half_float::half> >’
/usr/include/c++/7/ext/aligned_buffer.h:85:34:   required from ‘struct __gnu_cxx::__aligned_buffer<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<half_float::half> > >’
/usr/include/c++/7/bits/hashtable_policy.h:248:43:   required from ‘struct std::__detail::_Hash_node_value_base<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<half_float::half> > >’
/usr/include/c++/7/bits/hashtable_policy.h:279:12:   required from ‘struct std::__detail::_Hash_node<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<half_float::half> >, true>’
/usr/include/c++/7/bits/hashtable_policy.h:2007:60:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/c++/7/bits/unordered_map.h:104:18:   required from ‘class std::unordered_map<std::__cxx11::basic_string<char>, pixsfm::FeatureMap<half_float::half>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<half_float::half> > > >’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featureset.h:96:24:   required from ‘class pixsfm::FeatureSet<half_float::half>’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/third-party/pybind11/include/pybind11/pybind11.h:1377:45:   required from ‘pybind11::class_<type_, options>& pybind11::class_<type_, options>::def(const char*, Func&&, const Extra& ...) [with Func = bool (pixsfm::FeatureMetricKeypointOptimizer::*)(std::unordered_map<std::__cxx11::basic_string<char>, Eigen::Matrix<double, -1, 2, 1> >*, const pixsfm::Graph*, const std::vector<long unsigned int>&, const std::vector<bool>&, pixsfm::FeatureSet<half_float::half>&); Extra = {}; type_ = pixsfm::FeatureMetricKeypointOptimizer; options = {}]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/keypoint_adjustment/bindings.cc:19:3:   required from ‘void pixsfm::BindParallelSolve(pybind11::class_<T>&) [with dtype = half_float::half; T = pixsfm::FeatureMetricKeypointOptimizer]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/keypoint_adjustment/bindings.cc:27:26:   required from ‘void pixsfm::BindKeypointOptimizer(pybind11::class_<Type>&) [with T = pixsfm::FeatureMetricKeypointOptimizer]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/keypoint_adjustment/bindings.cc:83:34:   required from here
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h:32:7: warning: ‘pixsfm::FeatureMap<half_float::half>’ declared with greater visibility than the type of its field ‘pixsfm::FeatureMap<half_float::half>::reference_pyarray_’ [-Wattributes]
 class FeatureMap {
       ^~~~~~~~~~
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h: In instantiation of ‘class pixsfm::FeatureMap<float>’:
/usr/include/c++/7/bits/stl_pair.h:215:11:   required from ‘struct std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<float> >’
/usr/include/c++/7/ext/aligned_buffer.h:85:34:   required from ‘struct __gnu_cxx::__aligned_buffer<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<float> > >’
/usr/include/c++/7/bits/hashtable_policy.h:248:43:   required from ‘struct std::__detail::_Hash_node_value_base<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<float> > >’
/usr/include/c++/7/bits/hashtable_policy.h:279:12:   required from ‘struct std::__detail::_Hash_node<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<float> >, true>’
/usr/include/c++/7/bits/hashtable_policy.h:2007:60:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/c++/7/bits/unordered_map.h:104:18:   required from ‘class std::unordered_map<std::__cxx11::basic_string<char>, pixsfm::FeatureMap<float>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<float> > > >’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featureset.h:96:24:   required from ‘class pixsfm::FeatureSet<float>’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/third-party/pybind11/include/pybind11/pybind11.h:1377:45:   required from ‘pybind11::class_<type_, options>& pybind11::class_<type_, options>::def(const char*, Func&&, const Extra& ...) [with Func = bool (pixsfm::FeatureMetricKeypointOptimizer::*)(std::unordered_map<std::__cxx11::basic_string<char>, Eigen::Matrix<double, -1, 2, 1> >*, const pixsfm::Graph*, const std::vector<long unsigned int>&, const std::vector<bool>&, pixsfm::FeatureSet<float>&); Extra = {}; type_ = pixsfm::FeatureMetricKeypointOptimizer; options = {}]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/keypoint_adjustment/bindings.cc:19:3:   required from ‘void pixsfm::BindParallelSolve(pybind11::class_<T>&) [with dtype = float; T = pixsfm::FeatureMetricKeypointOptimizer]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/keypoint_adjustment/bindings.cc:28:27:   required from ‘void pixsfm::BindKeypointOptimizer(pybind11::class_<Type>&) [with T = pixsfm::FeatureMetricKeypointOptimizer]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/keypoint_adjustment/bindings.cc:83:34:   required from here
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h:32:7: warning: ‘pixsfm::FeatureMap<float>’ declared with greater visibility than the type of its field ‘pixsfm::FeatureMap<float>::reference_pyarray_’ [-Wattributes]
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h: In instantiation of ‘class pixsfm::FeatureMap<double>’:
/usr/include/c++/7/bits/stl_pair.h:215:11:   required from ‘struct std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<double> >’
/usr/include/c++/7/ext/aligned_buffer.h:85:34:   required from ‘struct __gnu_cxx::__aligned_buffer<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<double> > >’
/usr/include/c++/7/bits/hashtable_policy.h:248:43:   required from ‘struct std::__detail::_Hash_node_value_base<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<double> > >’
/usr/include/c++/7/bits/hashtable_policy.h:279:12:   required from ‘struct std::__detail::_Hash_node<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<double> >, true>’
/usr/include/c++/7/bits/hashtable_policy.h:2007:60:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/c++/7/bits/unordered_map.h:104:18:   required from ‘class std::unordered_map<std::__cxx11::basic_string<char>, pixsfm::FeatureMap<double>, std::hash<std::__cxx11::basic_string<char> >, std::equal_to<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, pixsfm::FeatureMap<double> > > >’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featureset.h:96:24:   required from ‘class pixsfm::FeatureSet<double>’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/third-party/pybind11/include/pybind11/pybind11.h:1377:45:   required from ‘pybind11::class_<type_, options>& pybind11::class_<type_, options>::def(const char*, Func&&, const Extra& ...) [with Func = bool (pixsfm::FeatureMetricKeypointOptimizer::*)(std::unordered_map<std::__cxx11::basic_string<char>, Eigen::Matrix<double, -1, 2, 1> >*, const pixsfm::Graph*, const std::vector<long unsigned int>&, const std::vector<bool>&, pixsfm::FeatureSet<double>&); Extra = {}; type_ = pixsfm::FeatureMetricKeypointOptimizer; options = {}]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/keypoint_adjustment/bindings.cc:19:3:   required from ‘void pixsfm::BindParallelSolve(pybind11::class_<T>&) [with dtype = double; T = pixsfm::FeatureMetricKeypointOptimizer]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/keypoint_adjustment/bindings.cc:29:28:   required from ‘void pixsfm::BindKeypointOptimizer(pybind11::class_<Type>&) [with T = pixsfm::FeatureMetricKeypointOptimizer]’
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/keypoint_adjustment/bindings.cc:83:34:   required from here
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h:32:7: warning: ‘pixsfm::FeatureMap<double>’ declared with greater visibility than the type of its field ‘pixsfm::FeatureMap<double>::reference_pyarray_’ [-Wattributes]
In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:41:0,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/cubic_hermite_spline_simd.h:15,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/interpolation.h:22,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featurepatch.h:20,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h:24,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/keypoint_adjustment/src/topological_keypoint_optimizer.h:16,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/keypoint_adjustment/src/featuremetric_keypoint_optimizer.h:2,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/keypoint_adjustment/bindings.cc:8:
/usr/lib/gcc/x86_64-linux-gnu/7/include/avxintrin.h: In function ‘void pixsfm::_mm256_storeu_pd_T(double*, const __m256d&)’:
/usr/lib/gcc/x86_64-linux-gnu/7/include/avxintrin.h:890:1: error: inlining failed in call to always_inline ‘void _mm256_storeu_pd(double*, __m256d)’: target specific option mismatch
 _mm256_storeu_pd (double *__P, __m256d __A)
 ^~~~~~~~~~~~~~~~
In file included from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/interpolation.h:22:0,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featurepatch.h:20,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h:24,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/keypoint_adjustment/src/topological_keypoint_optimizer.h:16,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/keypoint_adjustment/src/featuremetric_keypoint_optimizer.h:2,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/keypoint_adjustment/bindings.cc:8:
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/cubic_hermite_spline_simd.h:22:19: note: called from here
   _mm256_storeu_pd(data, val);
   ~~~~~~~~~~~~~~~~^~~~~~~~~~~
pixsfm/CMakeFiles/pypixsfm.dir/build.make:121: recipe for target 'pixsfm/CMakeFiles/pypixsfm.dir/keypoint_adjustment/bindings.cc.o' failed
make[2]: *** [pixsfm/CMakeFiles/pypixsfm.dir/keypoint_adjustment/bindings.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:41:0,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/cubic_hermite_spline_simd.h:15,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/interpolation.h:22,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featurepatch.h:20,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/dynamic_patch_interpolator.h:20,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/bindings.cc:12:
/usr/lib/gcc/x86_64-linux-gnu/7/include/avxintrin.h: In function ‘void pixsfm::_mm256_storeu_pd_T(double*, const __m256d&)’:
/usr/lib/gcc/x86_64-linux-gnu/7/include/avxintrin.h:890:1: error: inlining failed in call to always_inline ‘void _mm256_storeu_pd(double*, __m256d)’: target specific option mismatch
 _mm256_storeu_pd (double *__P, __m256d __A)
 ^~~~~~~~~~~~~~~~
In file included from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/interpolation.h:22:0,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featurepatch.h:20,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/dynamic_patch_interpolator.h:20,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/bindings.cc:12:
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/cubic_hermite_spline_simd.h:22:19: note: called from here
   _mm256_storeu_pd(data, val);
   ~~~~~~~~~~~~~~~~^~~~~~~~~~~
pixsfm/CMakeFiles/pypixsfm.dir/build.make:108: recipe for target 'pixsfm/CMakeFiles/pypixsfm.dir/features/bindings.cc.o' failed
make[2]: *** [pixsfm/CMakeFiles/pypixsfm.dir/features/bindings.cc.o] Error 1
In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:41:0,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/cubic_hermite_spline_simd.h:15,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/interpolation.h:22,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featurepatch.h:20,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/dynamic_patch_interpolator.h:20,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/localization/src/nearest_references.h:10,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/localization/bindings.cc:7:
/usr/lib/gcc/x86_64-linux-gnu/7/include/avxintrin.h: In function ‘void pixsfm::_mm256_storeu_pd_T(double*, const __m256d&)’:
/usr/lib/gcc/x86_64-linux-gnu/7/include/avxintrin.h:890:1: error: inlining failed in call to always_inline ‘void _mm256_storeu_pd(double*, __m256d)’: target specific option mismatch
 _mm256_storeu_pd (double *__P, __m256d __A)
 ^~~~~~~~~~~~~~~~
In file included from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/interpolation.h:22:0,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featurepatch.h:20,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/dynamic_patch_interpolator.h:20,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/localization/src/nearest_references.h:10,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/localization/bindings.cc:7:
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/cubic_hermite_spline_simd.h:22:19: note: called from here
   _mm256_storeu_pd(data, val);
   ~~~~~~~~~~~~~~~~^~~~~~~~~~~
pixsfm/CMakeFiles/pypixsfm.dir/build.make:147: recipe for target 'pixsfm/CMakeFiles/pypixsfm.dir/localization/bindings.cc.o' failed
make[2]: *** [pixsfm/CMakeFiles/pypixsfm.dir/localization/bindings.cc.o] Error 1
In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:41:0,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/cubic_hermite_spline_simd.h:15,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/interpolation.h:22,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featurepatch.h:20,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/residuals/src/feature_reference.h:8,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/residuals/bindings.cc:9:
/usr/lib/gcc/x86_64-linux-gnu/7/include/avxintrin.h: In function ‘void pixsfm::_mm256_storeu_pd_T(double*, const __m256d&)’:
/usr/lib/gcc/x86_64-linux-gnu/7/include/avxintrin.h:890:1: error: inlining failed in call to always_inline ‘void _mm256_storeu_pd(double*, __m256d)’: target specific option mismatch
 _mm256_storeu_pd (double *__P, __m256d __A)
 ^~~~~~~~~~~~~~~~
In file included from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/interpolation.h:22:0,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featurepatch.h:20,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/residuals/src/feature_reference.h:8,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/residuals/bindings.cc:9:
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/cubic_hermite_spline_simd.h:22:19: note: called from here
   _mm256_storeu_pd(data, val);
   ~~~~~~~~~~~~~~~~^~~~~~~~~~~
pixsfm/CMakeFiles/pypixsfm.dir/build.make:160: recipe for target 'pixsfm/CMakeFiles/pypixsfm.dir/residuals/bindings.cc.o' failed
make[2]: *** [pixsfm/CMakeFiles/pypixsfm.dir/residuals/bindings.cc.o] Error 1
In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:41:0,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/cubic_hermite_spline_simd.h:15,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/interpolation.h:22,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featurepatch.h:20,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h:24,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/bundle_adjustment/src/bundle_adjustment_options.h:19,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/bundle_adjustment/bindings.cc:7:
/usr/lib/gcc/x86_64-linux-gnu/7/include/avxintrin.h: In function ‘void pixsfm::_mm256_storeu_pd_T(double*, const __m256d&)’:
/usr/lib/gcc/x86_64-linux-gnu/7/include/avxintrin.h:890:1: error: inlining failed in call to always_inline ‘void _mm256_storeu_pd(double*, __m256d)’: target specific option mismatch
 _mm256_storeu_pd (double *__P, __m256d __A)
 ^~~~~~~~~~~~~~~~
In file included from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/interpolation.h:22:0,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featurepatch.h:20,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/features/src/featuremap.h:24,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/bundle_adjustment/src/bundle_adjustment_options.h:19,
                 from /home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/bundle_adjustment/bindings.cc:7:
/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/pixsfm/base/src/cubic_hermite_spline_simd.h:22:19: note: called from here
   _mm256_storeu_pd(data, val);
   ~~~~~~~~~~~~~~~~^~~~~~~~~~~
pixsfm/CMakeFiles/pypixsfm.dir/build.make:134: recipe for target 'pixsfm/CMakeFiles/pypixsfm.dir/bundle_adjustment/bindings.cc.o' failed
make[2]: *** [pixsfm/CMakeFiles/pypixsfm.dir/bundle_adjustment/bindings.cc.o] Error 1
CMakeFiles/Makefile2:421: recipe for target 'pixsfm/CMakeFiles/pypixsfm.dir/all' failed
make[1]: *** [pixsfm/CMakeFiles/pypixsfm.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2
/home/rui/anaconda3/lib/python3.6/site-packages/setuptools/command/easy_install.py:159: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
  EasyInstallDeprecationWarning,
/home/rui/anaconda3/lib/python3.6/site-packages/setuptools/command/install.py:37: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  setuptools.SetuptoolsDeprecationWarning,
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/setup.py", line 126, in <module>
    package_data={'': ['configs/*.yaml']},
  File "/home/rui/anaconda3/lib/python3.6/site-packages/setuptools/__init__.py", line 153, in setup
    return distutils.core.setup(**attrs)
  File "/home/rui/anaconda3/lib/python3.6/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/home/rui/anaconda3/lib/python3.6/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/home/rui/anaconda3/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/home/rui/anaconda3/lib/python3.6/site-packages/setuptools/command/develop.py", line 34, in run
    self.install_for_development()
  File "/home/rui/anaconda3/lib/python3.6/site-packages/setuptools/command/develop.py", line 114, in install_for_development
    self.run_command('build_ext')
  File "/home/rui/anaconda3/lib/python3.6/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/home/rui/anaconda3/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/setup.py", line 55, in run
    self.build_extension(ext)
  File "/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/setup.py", line 99, in build_extension
    cwd=self.build_temp)
  File "/home/rui/anaconda3/lib/python3.6/subprocess.py", line 291, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--config', 'Release', '--', '-j6']' returned non-zero exit status 2.
----------------------------------------

ERROR: Command errored out with exit status 1: /home/rui/anaconda3/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/setup.py'"'"'; file='"'"'/home/rui/gwm/proj/pixsfm/pixel-perfect-sfm/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' develop --no-deps Check the logs for full command output.

Thanks

Phil26AT commented 2 years ago

Hi @wolf943134497, there seems to be an error with SIMD vectorization. For a quick fix you can try to install the library with AVX2_ENABLED=OFF pip install -e ..

As to why these compile errors occur, do you know if your CPU supports AVX? On Linux you can check this with grep avx /proc/cpuinfo.

wolf943134497 commented 2 years ago

Hi @Phil26AT @Skydes Thanks for your suggestions! I use the branch fix-gcc-4-8-5, and just fix the glog problem, now pixsfm installed successfully. Thanks!

kenylai commented 2 years ago

HI @Phil26AT , I try out the branch fix-gcc-4-8-5 and run pip install -e . ,but found errors:

[ 93%] Built target pypixsfm [ 96%] Linking CXX shared module ../../../pixsfm/_pixsfm.cpython-37m-x86_64-linux-gnu.so /usr/bin/ld: /usr/local/lib/libpython3.7m.a(abstract.o): relocation R_X86_64_32S against `_Py_NotImplementedStruct' can not be used when making a shared object; recompile with -fPIC /usr/local/lib/libpython3.7m.a: error adding symbols: Bad value collect2: error: ld returned 1 exit status pixsfm/CMakeFiles/_pixsfm.dir/build.make:128: recipe for target '../../pixsfm/_pixsfm.cpython-37m-x86_64-linux-gnu.so' failed make[2]: [../../pixsfm/_pixsfm.cpython-37m-x86_64-linux-gnu.so] Error 1 CMakeFiles/Makefile2:311: recipe for target 'pixsfm/CMakeFiles/_pixsfm.dir/all' failed make[1]: [pixsfm/CMakeFiles/_pixsfm.dir/all] Error 2 Makefile:127: recipe for target 'all' failed make: [all] Error 2 /usr/local/lib/python3.7/distutils/dist.py:274: UserWarning: Unknown distribution option: 'long_description_content_type' warnings.warn(msg) Traceback (most recent call last): File "", line 1, in File "/work/pixel-perfect-sfm/setup.py", line 126, in package_data={'': ['configs/.yaml']}, File "/usr/local/lib/python3.7/site-packages/setuptools/init.py", line 129, in setup return distutils.core.setup(attrs) File "/usr/local/lib/python3.7/distutils/core.py", line 148, in setup dist.run_commands() File "/usr/local/lib/python3.7/distutils/dist.py", line 966, in run_commands self.run_command(cmd) File "/usr/local/lib/python3.7/distutils/dist.py", line 985, in run_command cmd_obj.run() File "/usr/local/lib/python3.7/site-packages/setuptools/command/develop.py", line 36, in run self.install_for_development() File "/usr/local/lib/python3.7/site-packages/setuptools/command/develop.py", line 136, in install_for_development self.run_command('build_ext') File "/usr/local/lib/python3.7/distutils/cmd.py", line 313, in run_command self.distribution.run_command(command) File "/usr/local/lib/python3.7/distutils/dist.py", line 985, in run_command cmd_obj.run() File "/work/pixel-perfect-sfm/setup.py", line 55, in run self.build_extension(ext) File "/work/pixel-perfect-sfm/setup.py", line 99, in build_extension cwd=self.build_temp) File "/usr/local/lib/python3.7/subprocess.py", line 341, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--config', 'Release', '--', '-j']' returned non-zero exit status 2.

sarlinpe commented 2 years ago
  1. This confirms that the original issue is solved
  2. The new error is due to your Python installation not providing a shared library. This is not a pixsfm issue, a quick search with this error message brings up many results, such as this SO thread. I guess that your Python install was built in a non-standard way like pyenv; hard to say without more details.

Closing this for now.

symao commented 2 years ago

Modify line10 in CMakelist.txt ‘set(CMAKE_CXX_STANDARD 14)’,change 11 to 14. This works for me.