I am trying to run python3 setup.py build, and am getting the following output:
8 warnings generated.
[ 98%] Linking CXX shared module parent/OpenSfM/opensfm/pysfm.cpython-39-darwin.so
13 warnings and 2 errors generated.
make[2]: *** [bundle/CMakeFiles/bundle_test.dir/test/reprojection_errors_test.cc.o] Error 1
make[1]: *** [bundle/CMakeFiles/bundle_test.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 98%] Built target pysfm
make: *** [all] Error 2
Traceback (most recent call last):
File "parent/OpenSfM/setup.py", line 60, in <module>
build_c_extension()
File "parent/OpenSfM/setup.py", line 54, in build_c_extension
subprocess.check_call(
File "/opt/homebrew/Cellar/python@3.9/3.9.19_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py", line 373, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['make', '-j8']' returned non-zero exit status 2.
I scrolled up and found the two errors are /opt/homebrew/Cellar/ceres-solver/2.2.0_1/include/ceres/rotation.h:801:7: error: no matching function for call to 'fpclassify' and /opt/homebrew/Cellar/ceres-solver/2.2.0_1/include/ceres/rotation.h:799:19: error: no matching function for call to 'hypot'.
I looked into rotation.h and noted these functions are pulled from <cmath>. I tried executing these functions in a separate cpp file and had no issue.
A few things to note (unsure if related or not):
I am using python 3.9
I am using MacOS
I set pyyaml to 5.3.1 in requirements.txt as I was having issues with 5.4
I put add_definitions(-DVL_DISABLE_SSE2) into CMakeLists.txt as I was having issues with SSE2
I also put set(OpenMP_libomp_LIBRARY "/opt/homebrew/opt/libomp/lib/libomp.dylib") and set(OpenMP_CXX_INCLUDE_DIR "/opt/homebrew/opt/libomp/include") in CMakeLists.txt
I'm using set(CMAKE_CXX_STANDARD 17) in CMakeLists.txt
I changed the directories in the #include statements in rotation.h to point to the correct directories of the specified files as such:
I am trying to run
python3 setup.py build
, and am getting the following output:I scrolled up and found the two errors are
/opt/homebrew/Cellar/ceres-solver/2.2.0_1/include/ceres/rotation.h:801:7: error: no matching function for call to 'fpclassify'
and/opt/homebrew/Cellar/ceres-solver/2.2.0_1/include/ceres/rotation.h:799:19: error: no matching function for call to 'hypot'
.I looked into
rotation.h
and noted these functions are pulled from<cmath>
. I tried executing these functions in a separate cpp file and had no issue.A few things to note (unsure if related or not):
pyyaml
to5.3.1
inrequirements.txt
as I was having issues with5.4
add_definitions(-DVL_DISABLE_SSE2)
intoCMakeLists.txt
as I was having issues with SSE2set(OpenMP_libomp_LIBRARY "/opt/homebrew/opt/libomp/lib/libomp.dylib")
andset(OpenMP_CXX_INCLUDE_DIR "/opt/homebrew/opt/libomp/include")
in CMakeLists.txtset(CMAKE_CXX_STANDARD 17)
inCMakeLists.txt
#include
statements inrotation.h
to point to the correct directories of the specified files as such:Any help on this would be greatly appreciated!