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

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

Closed
kenylai opened this issue Jan 25, 2022 · 9 comments

Comments

@kenylai
Copy link

kenylai commented Jan 25, 2022

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
Copy link
Collaborator

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
Copy link

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

@sarlinpe
Copy link
Member

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

@wolf943134497
Copy link

wolf943134497 commented Jan 27, 2022

@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
Copy link
Collaborator

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
Copy link

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
Copy link
Author

kenylai commented Jan 28, 2022

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
Copy link
Member

  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
Copy link

symao commented Mar 7, 2022

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

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

5 participants