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

error: no matching function for call to 'fpclassify' AND error: no matching function for call to 'hypot' #1071

Open
Joeljensen28 opened this issue Sep 3, 2024 · 0 comments

Comments

@Joeljensen28
Copy link

Joeljensen28 commented Sep 3, 2024

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/[email protected]/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):

  1. I am using python 3.9
  2. I am using MacOS
  3. I set pyyaml to 5.3.1 in requirements.txt as I was having issues with 5.4
  4. I put add_definitions(-DVL_DISABLE_SSE2) into CMakeLists.txt as I was having issues with SSE2
  5. 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
  6. I'm using set(CMAKE_CXX_STANDARD 17) in CMakeLists.txt
  7. I changed the directories in the #include statements in rotation.h to point to the correct directories of the specified files as such:
#include "constants.h"
#include "internal/euler_angles.h"
#include "../../../../glog/0.6.0/include/glog/logging.h"

Any help on this would be greatly appreciated!

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

1 participant