pixel-perfect-sfm icon indicating copy to clipboard operation
pixel-perfect-sfm copied to clipboard

Update to COLMAP 3.9

Open Dawars opened this issue 11 months ago • 5 comments

Updating to work with colmap 3.9+ according to #110

I managed to compile the code but it still doesn't link.

Todo:

  • [x] Fix include file locations
  • [x] Rename function and variable names
  • [x] Move to GTest
  • [ ] Didn't run tests (didn't link)
  • [ ] Didn't test with colmap 3.9.1 and dev version (didn't link)
  • [ ] pybind signatures might have changed
  • [ ] Fix CameraModelId print
  • [ ] Run clang-format

I had to add a print function for CameraModelId because apparently enums cannot be easily printed: std::ostream& operator<<(std::ostream& os, const colmap::CameraModelId& id) Probably there is a really easy fix for this though.

Details

Linking CXX shared module ../../lib.linux-x86_64-3.10/pixsfm/_pixsfm.cpython-310-x86_64-linux-gnu.so /usr/bin/ld: libpixsfm.a(graph.cc.o): in function operator<<(std::ostream&, colmap::CameraModelId const&)': graph.cc:(.text+0x11c0): multiple definition of operator<<(std::ostream&, colmap::CameraModelId const&)'; CMakeFiles/_pixsfm.dir/_pixsfm/bindings.cc.o (symbol from plugin):(.text+0x0): first defined here /usr/bin/ld: libpixsfm.a(featurepatch.cc.o): in function operator<<(std::ostream&, colmap::CameraModelId const&)': featurepatch.cc:(.text+0x760): multiple definition of operator<<(std::ostream&, colmap::CameraModelId const&)'; CMakeFiles/_pixsfm.dir/_pixsfm/bindings.cc.o (symbol from plugin):(.text+0x0): first defined here /usr/bin/ld: libpixsfm.a(featuremap.cc.o): in function operator<<(std::ostream&, colmap::CameraModelId const&)': featuremap.cc:(.text+0x8a0): multiple definition of operator<<(std::ostream&, colmap::CameraModelId const&)'; CMakeFiles/_pixsfm.dir/_pixsfm/bindings.cc.o (symbol from plugin):(.text+0x0): first defined here /usr/bin/ld: libpixsfm.a(featuremanager.cc.o): in function operator<<(std::ostream&, colmap::CameraModelId const&)': featuremanager.cc:(.text+0xe0): multiple definition of operator<<(std::ostream&, colmap::CameraModelId const&)'; CMakeFiles/_pixsfm.dir/_pixsfm/bindings.cc.o (symbol from plugin):(.text+0x0): first defined here /usr/bin/ld: libpixsfm.a(featureview.cc.o): in function operator<<(std::ostream&, colmap::CameraModelId const&)': featureview.cc:(.text+0x690): multiple definition of operator<<(std::ostream&, colmap::CameraModelId const&)'; CMakeFiles/_pixsfm.dir/_pixsfm/bindings.cc.o (symbol from plugin):(.text+0x0): first defined here /usr/bin/ld: libpixsfm.a(featureset.cc.o): in function operator<<(std::ostream&, colmap::CameraModelId const&)': featureset.cc:(.text+0xc00): multiple definition of operator<<(std::ostream&, colmap::CameraModelId const&)'; CMakeFiles/_pixsfm.dir/_pixsfm/bindings.cc.o (symbol from plugin):(.text+0x0): first defined here /usr/bin/ld: libpixsfm.a(references.cc.o): in function operator<<(std::ostream&, colmap::CameraModelId const&)': references.cc:(.text+0x340): multiple definition of operator<<(std::ostream&, colmap::CameraModelId const&)'; CMakeFiles/_pixsfm.dir/_pixsfm/bindings.cc.o (symbol from plugin):(.text+0x0): first defined here /usr/bin/ld: libpixsfm.a(keypoint_adjustment_options.cc.o): in function operator<<(std::ostream&, colmap::CameraModelId const&)': keypoint_adjustment_options.cc:(.text+0x0): multiple definition of operator<<(std::ostream&, colmap::CameraModelId const&)'; CMakeFiles/_pixsfm.dir/_pixsfm/bindings.cc.o (symbol from plugin):(.text+0x0): first defined here /usr/bin/ld: libpixsfm.a(bundle_adjustment_options.cc.o): in function operator<<(std::ostream&, colmap::CameraModelId const&)': bundle_adjustment_options.cc:(.text+0x0): multiple definition of operator<<(std::ostream&, colmap::CameraModelId const&)'; CMakeFiles/_pixsfm.dir/_pixsfm/bindings.cc.o (symbol from plugin):(.text+0x0): first defined here

I don't want to spend more time on figuring these out in the near future but I'm happy to address any reviews.

Dawars avatar Mar 11 '24 22:03 Dawars