mapillary / mapillary/OpenSfM

Unable to run demo on M1 Mac - symbol not found for ceres

Open
#981 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
3.8k
Forks
899
PR merge metrics
No merged PRs in 30d

Description

I am trying to build and run OpenSFM on a M1 Mac, I had some issues with building but I referenced #971 and I could build successfully. However, now I get this when I try running ./bin/opensfm_run_all data/berlin:

Traceback (most recent call last):
  File "/Users/XXXX/OpenSFM/bin/opensfm_main.py", line 9, in <module>
    from opensfm import commands
  File "/Users/XXXX/OpenSFM/opensfm/__init__.py", line 1, in <module>
    from opensfm import pybundle
ImportError: dlopen(/Users/XXXX/OpenSFM/opensfm/pybundle.cpython-310-darwin.so, 0x0002): symbol not found in flat namespace '__ZN5ceres10Covariance7ComputeERKSt6vectorISt4pairIPKdS4_ESaIS5_EEPNS_7ProblemE'

This seems to be something to do with ceres, but I couldnt solve it. I am using homebrew and everything are either linked or in /opt/homebrew directories.

Any help will be greatly appreciated 🙏

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the build guidance in #971, then inspect bin/opensfm_run_all, bin/opensfm_main.py, opensfm/init.py, and the pybundle.cpython-310-darwin.so import failure. Reproduce the command on an M1 Mac and trace the Ceres symbol-loading problem; done means ./bin/opensfm_run_all data/berlin starts successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.