cvg / VP-Estimation-with-Prior-Gravity

Vanishing Point Estimation in Uncalibrated Images with Prior Gravity Direction (ICCV 2023)
MIT License
88 stars 7 forks source link

An error about compilation #3

Closed ccy-ustb closed 1 year ago

ccy-ustb commented 1 year ago

Hello! Great job, I'm very interested! I'm currently having some problems running the code you provided. The compilation did not pass with the steps you provided and reported the following error:

I run pip install -Ive . and get an error:

` [ 18%] Building CXX object vp_estimation_with_prior_gravity/CMakeFiles/vp_estimation_with_prior_gravity_estimators.dir/estimators/bindings.cc.o /home/ccy/ccy/VP-Estimation-with-Prior-Gravity/third_party/RansacLib/examples/camera_pose_estimation.cc:46:10: fatal error: RansacLib/ransac.h: 没有那个文件或目录 46 | #include <RansacLib/ransac.h> | ^~~~~~~~ compilation terminated. /home/ccy/ccy/VP-Estimation-with-Prior-Gravity/third_party/RansacLib/examples/hybrid_line_estimation.cc:45:10: fatal error: RansacLib/hybrid_ransac.h: 没有那个文件或目录 45 | #include <RansacLib/hybrid_ransac.h> | ^~~~~~~ compilation terminated. /home/ccy/ccy/VP-Estimation-with-Prior-Gravity/third_party/RansacLib/examples/localization_with_gt.cc:48:10: fatal error: RansacLib/ransac.h: 没有那个文件或目录 48 | #include <RansacLib/ransac.h> | ^~~~~~~~ compilation terminated. /home/ccy/ccy/VP-Estimation-with-Prior-Gravity/third_party/RansacLib/examples/line_estimation.cc:45:10: fatal error: RansacLib/ransac.h: 没有那个文件或目录 45 | #include <RansacLib/ransac.h> | ^~~~~~~~ compilation terminated. make[2]: [third_party/RansacLib/examples/CMakeFiles/camera_pose_estimation.dir/build.make:76:third_party/RansacLib/examples/CMakeFiles/camera_pose_estimation.dir/camera_pose_estimation.cc.o] 错误 1 make[2]: [third_party/RansacLib/examples/CMakeFiles/hybrid_line_estimation.dir/build.make:76:third_party/RansacLib/examples/CMakeFiles/hybrid_line_estimation.dir/hybrid_line_estimation.cc.o] 错误 1 make[1]: [CMakeFiles/Makefile2:348:third_party/RansacLib/examples/CMakeFiles/camera_pose_estimation.dir/all] 错误 2 make[1]: 正在等待未完成的任务.... make[1]: [CMakeFiles/Makefile2:322:third_party/RansacLib/examples/CMakeFiles/hybrid_line_estimation.dir/all] 错误 2 make[2]: [third_party/RansacLib/examples/CMakeFiles/localization_with_gt.dir/build.make:76:third_party/RansacLib/examples/CMakeFiles/localization_with_gt.dir/localization_with_gt.cc.o] 错误 1 make[2]: 正在等待未完成的任务.... [ 23%] Building CXX object third_party/RansacLib/examples/CMakeFiles/line_estimation.dir/line_estimator.cc.o make[2]: [third_party/RansacLib/examples/CMakeFiles/line_estimation.dir/build.make:76:third_party/RansacLib/examples/CMakeFiles/line_estimation.dir/line_estimation.cc.o] 错误 1 make[2]: 正在等待未完成的任务.... [ 23%] Building CXX object vp_estimation_with_prior_gravity/CMakeFiles/vp_estimation_with_prior_gravity_estimators.dir/estimators/functions.cpp.o [ 25%] Building CXX object vp_estimation_with_prior_gravity/CMakeFiles/vp_estimation_with_prior_gravity_estimators.dir/estimators/functions_hybrid.cpp.o /home/ccy/ccy/VP-Estimation-with-Prior-Gravity/third_party/RansacLib/examples/localization.cc:48:10: fatal error: RansacLib/ransac.h: 没有那个文件或目录 48 | #include <RansacLib/ransac.h> | ^~~~~~~~ compilation terminated. make[2]: [third_party/RansacLib/examples/CMakeFiles/localization.dir/build.make:76:third_party/RansacLib/examples/CMakeFiles/localization.dir/localization.cc.o] 错误 1 make[1]: [CMakeFiles/Makefile2:374:third_party/RansacLib/examples/CMakeFiles/localization.dir/all] 错误 2 /home/ccy/ccy/VP-Estimation-with-Prior-Gravity/vp_estimation_with_prior_gravity/estimators/bindings.cc:8:10: fatal error: RansacLib/sampling.h: 没有那个文件或目录 8 | #include <RansacLib/sampling.h> | ^~~~~~ compilation terminated. make[2]: [vp_estimation_with_prior_gravity/CMakeFiles/vp_estimation_with_prior_gravity_estimators.dir/build.make:118:vp_estimation_with_prior_gravity/CMakeFiles/vp_estimation_with_prior_gravity_estimators.dir/estimators/bindings.cc.o] 错误 1 make[2]: 正在等待未完成的任务.... In file included from /home/ccy/ccy/VP-Estimation-with-Prior-Gravity/vp_estimation_with_prior_gravity/estimators/functions_hybrid.cpp:1: /home/ccy/ccy/VP-Estimation-with-Prior-Gravity/vp_estimation_with_prior_gravity/estimators/functions_hybrid.h:7:10: fatal error: RansacLib/hybrid_ransac.h: 没有那个文件或目录 7 | #include <RansacLib/hybrid_ransac.h> | ^~~~~~~ compilation terminated. In file included from /home/ccy/ccy/VP-Estimation-with-Prior-Gravity/vp_estimation_with_prior_gravity/estimators/functions.h:8, from /home/ccy/ccy/VP-Estimation-with-Prior-Gravity/vp_estimation_with_prior_gravity/estimators/functions.cpp:1: /home/ccy/ccy/VP-Estimation-with-Prior-Gravity/third_party/RansacLib/RansacLib/ransac.h:42:10: fatal error: RansacLib/sampling.h: 没有那个文件或目录 42 | #include <RansacLib/sampling.h> | ^~~~~~ compilation terminated. make[2]: [vp_estimation_with_prior_gravity/CMakeFiles/vp_estimation_with_prior_gravity_estimators.dir/build.make:328:vp_estimation_with_prior_gravity/CMakeFiles/vp_estimation_with_prior_gravity_estimators.dir/estimators/functions_hybrid.cpp.o] 错误 1 make[2]: [vp_estimation_with_prior_gravity/CMakeFiles/vp_estimation_with_prior_gravity_estimators.dir/build.make:286:vp_estimation_with_prior_gravity/CMakeFiles/vp_estimation_with_prior_gravity_estimators.dir/estimators/functions.cpp.o] 错误 1 make[1]: [CMakeFiles/Makefile2:452:vp_estimation_with_prior_gravity/CMakeFiles/vp_estimation_with_prior_gravity_estimators.dir/all] 错误 2 In file included from /home/ccy/ccy/VP-Estimation-with-Prior-Gravity/third_party/RansacLib/examples/pyransaclib.cc:36: /home/ccy/ccy/VP-Estimation-with-Prior-Gravity/third_party/RansacLib/examples/ransaclib_localization.cc:49:10: fatal error: RansacLib/ransac.h: 没有那个文件或目录 49 | #include <RansacLib/ransac.h> | ^~~~~~~~ compilation terminated. make[2]: [third_party/RansacLib/examples/CMakeFiles/pyransaclib.dir/build.make:76:third_party/RansacLib/examples/CMakeFiles/pyransaclib.dir/pyransaclib.cc.o] 错误 1 make[1]: [CMakeFiles/Makefile2:426:third_party/RansacLib/examples/CMakeFiles/pyransaclib.dir/all] 错误 2 make[1]: [CMakeFiles/Makefile2:296:third_party/RansacLib/examples/CMakeFiles/line_estimation.dir/all] 错误 2 make[1]: [CMakeFiles/Makefile2:400:third_party/RansacLib/examples/CMakeFiles/localization_with_gt.dir/all] 错误 2 make: * [Makefile:136:all] 错误 2 Traceback (most recent call last): File "", line 2, in File "", line 34, in File "/home/ccy/ccy/VP-Estimation-with-Prior-Gravity/setup.py", line 68, in setup( File "/home/ccy/anaconda3/envs/VP_point/lib/python3.9/site-packages/setuptools/init.py", line 107, in setup return distutils.core.setup(attrs) File "/home/ccy/anaconda3/envs/VP_point/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 185, in setup return run_commands(dist) File "/home/ccy/anaconda3/envs/VP_point/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 201, in run_commands dist.run_commands() File "/home/ccy/anaconda3/envs/VP_point/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands self.run_command(cmd) File "/home/ccy/anaconda3/envs/VP_point/lib/python3.9/site-packages/setuptools/dist.py", line 1234, in run_command super().run_command(command) File "/home/ccy/anaconda3/envs/VP_point/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 988, in run_command cmd_obj.run() File "/home/ccy/anaconda3/envs/VP_point/lib/python3.9/site-packages/setuptools/command/develop.py", line 34, in run self.install_for_development() File "/home/ccy/anaconda3/envs/VP_point/lib/python3.9/site-packages/setuptools/command/develop.py", line 111, in install_for_development self.run_command('build_ext') File "/home/ccy/anaconda3/envs/VP_point/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command self.distribution.run_command(command) File "/home/ccy/anaconda3/envs/VP_point/lib/python3.9/site-packages/setuptools/dist.py", line 1234, in run_command super().run_command(command) File "/home/ccy/anaconda3/envs/VP_point/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 988, in run_command cmd_obj.run() File "/home/ccy/anaconda3/envs/VP_point/lib/python3.9/site-packages/setuptools/command/build_ext.py", line 84, in run _build_ext.run(self) File "/home/ccy/anaconda3/envs/VP_point/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 345, in run self.build_extensions() File "/home/ccy/anaconda3/envs/VP_point/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 467, in build_extensions self._build_extensions_serial() File "/home/ccy/anaconda3/envs/VP_point/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 493, in _build_extensions_serial self.build_extension(ext) File "/home/ccy/ccy/VP-Estimation-with-Prior-Gravity/setup.py", line 61, in build_extension subprocess.check_call( File "/home/ccy/anaconda3/envs/VP_point/lib/python3.9/subprocess.py", line 373, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--parallel 8']' returned non-zero exit status 2. error: subprocess-exited-with-error

× python setup.py develop did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.
full command: /home/ccy/anaconda3/envs/VP_point/bin/python -c '
exec(compile('"'"''"'"''"'"'
# This is <pip-setuptools-caller> -- a caller that pip uses to run setup.py
#
# - It imports setuptools before invoking setup.py, to enable projects that directly
#   import from `distutils.core` to work with newer packaging standards.
# - It provides a clear error message when setuptools is not installed.
# - It sets `sys.argv[0]` to the underlying `setup.py`, when invoking `setup.py` so
#   setuptools doesn'"'"'t think the script is `-c`. This avoids the following warning:
#     manifest_maker: standard file '"'"'-c'"'"' not found".
# - It generates a shim setup.py, for handling setup.cfg-only projects.
import os, sys, tokenize

try:
    import setuptools
except ImportError as error:
    print(
        "ERROR: Can not execute `setup.py` since setuptools is not available in "
        "the build environment.",
        file=sys.stderr,
    )
    sys.exit(1)

__file__ = %r
sys.argv[0] = __file__

if os.path.exists(__file__):
    filename = __file__
    with tokenize.open(__file__) as f:
        setup_py_code = f.read()
else:
    filename = "<auto-generated setuptools caller>"
    setup_py_code = "from setuptools import setup; setup()"

exec(compile(setup_py_code, filename, "exec"))
'"'"''"'"''"'"' % ('"'"'/home/ccy/ccy/VP-Estimation-with-Prior-Gravity/setup.py'"'"',), "<pip-setuptools-caller>", "exec"))' develop --no-deps
cwd: /home/ccy/ccy/VP-Estimation-with-Prior-Gravity/

error: subprocess-exited-with-error

× python setup.py develop did not run successfully. │ exit code: 1 ╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip. `

Then I followed the error prompted to find the library ransaclib and re-followed the steps you provided:

mkdir build cd build/ cmake -DCMAKE_PREFIX_PATH=/path/to/poselib/_install/lib/cmake/PoseLib ../ make

After compiling successfully, it still reports this error, I don't know how to solve it, I hope you can give some solutions.

rpautrat commented 1 year ago

Hi, it seems that the error is related to RansacLib, but I can't read it as it is in Chinese: 没有那个文件或目录 However, I am assuming that it is not able to find RansacLib.

First, did you make sure to pull all the submodules when cloning, i.e. with git clone --recurse-submodules https://github.com/cvg/VP-Estimation-with-Prior-Gravity.git? Just to make sure that you do have the RansacLib files in the third_party folder.

Secondly, the line importing RansacLib is here: https://github.com/cvg/VP-Estimation-with-Prior-Gravity/blob/337b85142658b6ff5693c0effe7dc487c46f2daa/CMakeLists.txt#L80C23-L80C45. Maybe you need to adapt this to your machine, by putting the absolute path to the header files of RansacLib?

ccy-ustb commented 1 year ago

Thank you very much, I have solved the problem!