How to troubleshoot Blender 100% compiled with ld error “undefined reference”
1
vote
2
answers
262
views
I was trying to get a clean instal of blender on my computer following the steps from this wepage
On the build steps from the wepage after the make command the build crashes:
$ cd ~/blender-git/blender
$ make
[ 1%] Built target bf_intern_clog
[ ...] Other succesful steps
[100%] Linking CXX executable ../../bin/blender
../../lib/libbf_intern_iksolver.a(IK_Solver.cpp.o):IK_Solver.cpp:function IK_FreeSolver: error: undefined reference to 'IK_QJacobian::~IK_QJacobian()'
../../lib/libbf_intern_iksolver.a(IK_Solver.cpp.o):IK_Solver.cpp:function IK_FreeSolver: error: undefined reference to 'IK_QJacobian::~IK_QJacobian()'
../../lib/libbf_intern_iksolver.a(IK_QJacobianSolver.cpp.o):IK_QJacobianSolver.cpp:function IK_QJacobianSolver::IK_QJacobianSolver(): error: undefined reference to 'IK_QJacobian::IK_QJacobian()'
../../lib/libbf_intern_iksolver.a(IK_QJacobianSolver.cpp.o):IK_QJacobianSolver.cpp:function IK_QJacobianSolver::IK_QJacobianSolver(): error: undefined reference to 'IK_QJacobian::IK_QJacobian()'
../../lib/libbf_intern_iksolver.a(IK_QJacobianSolver.cpp.o):IK_QJacobianSolver.cpp:function IK_QJacobianSolver::Setup(IK_QSegment*, std::list >&): error: undefined reference to 'IK_QJacobian::ArmMatrices(int, int)'
../../lib/libbf_intern_iksolver.a(IK_QJacobianSolver.cpp.o):IK_QJacobianSolver.cpp:function IK_QJacobianSolver::Setup(IK_QSegment*, std::list >&): error: undefined reference to 'IK_QJacobian::SetDoFWeight(int, double)'
../../lib/libbf_intern_iksolver.a(IK_QJacobianSolver.cpp.o):IK_QJacobianSolver.cpp:function IK_QJacobianSolver::Setup(IK_QSegment*, std::list >&): error: undefined reference to 'IK_QJacobian::ArmMatrices(int, int)'
../../lib/libbf_intern_iksolver.a(IK_QJacobianSolver.cpp.o):IK_QJacobianSolver.cpp:function IK_QJacobianSolver::Solve(IK_QSegment*, std::list >, double, int): error: undefined reference to 'IK_QJacobian::Invert()'
../../lib/libbf_intern_iksolver.a(IK_QJacobianSolver.cpp.o):IK_QJacobianSolver.cpp:function IK_QJacobianSolver::Solve(IK_QSegment*, std::list >, double, int): error: undefined reference to 'IK_QJacobian::SubTask(IK_QJacobian&)'
../../lib/libbf_intern_iksolver.a(IK_QJacobianSolver.cpp.o):IK_QJacobianSolver.cpp:function IK_QJacobianSolver::Solve(IK_QSegment*, std::list >, double, int): error: undefined reference to 'IK_QJacobian::AngleUpdateNorm() const'
../../lib/libbf_intern_iksolver.a(IK_QJacobianSolver.cpp.o):IK_QJacobianSolver.cpp:function IK_QJacobianSolver::IK_QJacobianSolver() [clone .cold]: error: undefined reference to 'IK_QJacobian::~IK_QJacobian()'
../../lib/libbf_intern_iksolver.a(IK_QSegment.cpp.o):IK_QSegment.cpp:function IK_QElbowSegment::UpdateAngle(IK_QJacobian const&, Eigen::Matrix&, bool*): error: undefined reference to 'IK_QJacobian::AngleUpdate(int) const'
../../lib/libbf_intern_iksolver.a(IK_QSegment.cpp.o):IK_QSegment.cpp:function IK_QElbowSegment::UpdateAngle(IK_QJacobian const&, Eigen::Matrix&, bool*): error: undefined reference to 'IK_QJacobian::AngleUpdate(int) const'
../../lib/libbf_intern_iksolver.a(IK_QSegment.cpp.o):IK_QSegment.cpp:function IK_QTranslateSegment::UpdateAngle(IK_QJacobian const&, Eigen::Matrix&, bool*): error: undefined reference to 'IK_QJacobian::AngleUpdate(int) const'
../../lib/libbf_intern_iksolver.a(IK_QSegment.cpp.o):IK_QSegment.cpp:function IK_QSwingSegment::Lock(int, IK_QJacobian&, Eigen::Matrix&): error: undefined reference to 'IK_QJacobian::Lock(int, double)'
../../lib/libbf_intern_iksolver.a(IK_QSegment.cpp.o):IK_QSegment.cpp:function IK_QSphericalSegment::Lock(int, IK_QJacobian&, Eigen::Matrix&): error: undefined reference to 'IK_QJacobian::Lock(int, double)'
../../lib/libbf_intern_iksolver.a(IK_QSegment.cpp.o):IK_QSegment.cpp:function IK_QRevoluteSegment::UpdateAngle(IK_QJacobian const&, Eigen::Matrix&, bool*): error: undefined reference to 'IK_QJacobian::AngleUpdate(int) const'
../../lib/libbf_intern_iksolver.a(IK_QSegment.cpp.o):IK_QSegment.cpp:function IK_QRevoluteSegment::Lock(int, IK_QJacobian&, Eigen::Matrix&): error: undefined reference to 'IK_QJacobian::Lock(int, double)'
../../lib/libbf_intern_iksolver.a(IK_QSegment.cpp.o):IK_QSegment.cpp:function IK_QSwingSegment::Lock(int, IK_QJacobian&, Eigen::Matrix&): error: undefined reference to 'IK_QJacobian::Lock(int, double)'
../../lib/libbf_intern_iksolver.a(IK_QTask.cpp.o):IK_QTask.cpp:function IK_QOrientationTask::ComputeJacobian(IK_QJacobian&): error: undefined reference to 'IK_QJacobian::SetBetas(int, int, Eigen::Matrix const&)'
../../lib/libbf_intern_iksolver.a(IK_QTask.cpp.o):IK_QTask.cpp:function IK_QOrientationTask::ComputeJacobian(IK_QJacobian&): error: undefined reference to 'IK_QJacobian::SetDerivatives(int, int, Eigen::Matrix const&, double)'
../../lib/libbf_intern_iksolver.a(IK_QTask.cpp.o):IK_QTask.cpp:function IK_QOrientationTask::ComputeJacobian(IK_QJacobian&): error: undefined reference to 'IK_QJacobian::SetDerivatives(int, int, Eigen::Matrix const&, double)'
../../lib/libbf_intern_iksolver.a(IK_QTask.cpp.o):IK_QTask.cpp:function IK_QPositionTask::ComputeJacobian(IK_QJacobian&): error: undefined reference to 'IK_QJacobian::SetBetas(int, int, Eigen::Matrix const&)'
../../lib/libbf_intern_iksolver.a(IK_QTask.cpp.o):IK_QTask.cpp:function IK_QPositionTask::ComputeJacobian(IK_QJacobian&): error: undefined reference to 'IK_QJacobian::SetDerivatives(int, int, Eigen::Matrix const&, double)'
../../lib/libbf_intern_iksolver.a(IK_QTask.cpp.o):IK_QTask.cpp:function IK_QPositionTask::ComputeJacobian(IK_QJacobian&): error: undefined reference to 'IK_QJacobian::SetDerivatives(int, int, Eigen::Matrix const&, double)'
../../lib/libbf_intern_iksolver.a(IK_QTask.cpp.o):IK_QTask.cpp:function IK_QCenterOfMassTask::ComputeJacobian(IK_QJacobian&): error: undefined reference to 'IK_QJacobian::SetBetas(int, int, Eigen::Matrix const&)'
../../lib/libbf_intern_libmv.a(homography.cc.o):homography.cc:function libmv_homography2DFromCorrespondencesEuc: error: undefined reference to 'libmv::EstimateHomographyOptions::EstimateHomographyOptions()'
../../lib/libbf_intern_libmv.a(homography.cc.o):homography.cc:function libmv_homography2DFromCorrespondencesEuc: error: undefined reference to 'libmv::EstimateHomography2DFromCorrespondences(Eigen::Matrix const&, Eigen::Matrix const&, libmv::EstimateHomographyOptions const&, Eigen::Matrix*)'
../../lib/libbf_intern_libmv.a(initialize_reconstruction.cc.o):initialize_reconstruction.cc:function libmv::EuclideanReconstructTwoFrames(std::vector > const&, libmv::EuclideanReconstruction*): error: undefined reference to 'libmv::NormalizedEightPointSolver(Eigen::Matrix const&, Eigen::Matrix const&, Eigen::Matrix*)'
../../lib/libbf_intern_libmv.a(initialize_reconstruction.cc.o):initialize_reconstruction.cc:function libmv::EuclideanReconstructTwoFrames(std::vector > const&, libmv::EuclideanReconstruction*): error: undefined reference to 'libmv::FundamentalToEssential(Eigen::Matrix const&, Eigen::Matrix*)'
../../lib/libbf_intern_libmv.a(initialize_reconstruction.cc.o):initialize_reconstruction.cc:function libmv::EuclideanReconstructTwoFrames(std::vector > const&, libmv::EuclideanReconstruction*): error: undefined reference to 'libmv::MotionFromEssentialAndCorrespondence(Eigen::Matrix const&, Eigen::Matrix const&, Eigen::Matrix const&, Eigen::Matrix const&, Eigen::Matrix const&, Eigen::Matrix*, Eigen::Matrix*)'
../../lib/libbf_intern_libmv.a(initialize_reconstruction.cc.o):initialize_reconstruction.cc:function libmv::ProjectiveReconstructTwoFrames(std::vector > const&, libmv::ProjectiveReconstruction*): error: undefined reference to 'libmv::NormalizedEightPointSolver(Eigen::Matrix const&, Eigen::Matrix const&, Eigen::Matrix*)'
../../lib/libbf_intern_libmv.a(initialize_reconstruction.cc.o):initialize_reconstruction.cc:function libmv::ProjectiveReconstructTwoFrames(std::vector > const&, libmv::ProjectiveReconstruction*): error: undefined reference to 'libmv::ProjectionsFromFundamental(Eigen::Matrix const&, Eigen::Matrix*, Eigen::Matrix*)'
../../lib/libbf_intern_libmv.a(keyframe_selection.cc.o):keyframe_selection.cc:function libmv::SelectKeyframesBasedOnGRICAndVariance(libmv::Tracks const&, libmv::CameraIntrinsics const&, std::vector >&): error: undefined reference to 'libmv::EstimateHomographyOptions::EstimateHomographyOptions()'
../../lib/libbf_intern_libmv.a(keyframe_selection.cc.o):keyframe_selection.cc:function libmv::SelectKeyframesBasedOnGRICAndVariance(libmv::Tracks const&, libmv::CameraIntrinsics const&, std::vector >&): error: undefined reference to 'libmv::EstimateHomography2DFromCorrespondences(Eigen::Matrix const&, Eigen::Matrix const&, libmv::EstimateHomographyOptions const&, Eigen::Matrix*)'
../../lib/libbf_intern_libmv.a(keyframe_selection.cc.o):keyframe_selection.cc:function libmv::SelectKeyframesBasedOnGRICAndVariance(libmv::Tracks const&, libmv::CameraIntrinsics const&, std::vector >&): error: undefined reference to 'libmv::EstimateFundamentalOptions::EstimateFundamentalOptions()'
../../lib/libbf_intern_libmv.a(keyframe_selection.cc.o):keyframe_selection.cc:function libmv::SelectKeyframesBasedOnGRICAndVariance(libmv::Tracks const&, libmv::CameraIntrinsics const&, std::vector >&): error: undefined reference to 'libmv::EstimateFundamentalFromCorrespondences(Eigen::Matrix const&, Eigen::Matrix const&, libmv::EstimateFundamentalOptions const&, Eigen::Matrix*)'
../../lib/libbf_intern_libmv.a(keyframe_selection.cc.o):keyframe_selection.cc:function libmv::SelectKeyframesBasedOnGRICAndVariance(libmv::Tracks const&, libmv::CameraIntrinsics const&, std::vector >&): error: undefined reference to 'libmv::SymmetricGeometricDistance(Eigen::Matrix const&, Eigen::Matrix const&, Eigen::Matrix const&)'
../../lib/libbf_intern_libmv.a(keyframe_selection.cc.o):keyframe_selection.cc:function libmv::SelectKeyframesBasedOnGRICAndVariance(libmv::Tracks const&, libmv::CameraIntrinsics const&, std::vector >&): error: undefined reference to 'libmv::SymmetricEpipolarDistance(Eigen::Matrix const&, Eigen::Matrix const&, Eigen::Matrix const&)'
../../lib/libbf_intern_libmv.a(keyframe_selection.cc.o):keyframe_selection.cc:function libmv::SelectKeyframesBasedOnGRICAndVariance(libmv::Tracks const&, libmv::CameraIntrinsics const&, std::vector >&): error: undefined reference to 'libmv::FundamentalToEssential(Eigen::Matrix const&, Eigen::Matrix*)'
../../lib/libbf_intern_libmv.a(keyframe_selection.cc.o):keyframe_selection.cc:function libmv::SelectKeyframesBasedOnGRICAndVariance(libmv::Tracks const&, libmv::CameraIntrinsics const&, std::vector >&): error: undefined reference to 'libmv::MotionFromEssentialAndCorrespondence(Eigen::Matrix const&, Eigen::Matrix const&, Eigen::Matrix const&, Eigen::Matrix const&, Eigen::Matrix const&, Eigen::Matrix*, Eigen::Matrix*)'
../../lib/libbf_intern_libmv.a(resect.cc.o):resect.cc:function libmv::EuclideanResect(std::vector > const&, libmv::EuclideanReconstruction*, bool): error: undefined reference to 'libmv::euclidean_resection::EuclideanResection(Eigen::Matrix const&, Eigen::Matrix const&, Eigen::Matrix*, Eigen::Matrix*, libmv::euclidean_resection::ResectionMethod)'
../../lib/libbf_intern_libmv.a(track_region.cc.o):track_region.cc:function libmv::(anonymous namespace)::ComputeCanonicalHomography(double const*, double const*, int, int): error: undefined reference to 'libmv::Homography2DFromCorrespondencesLinear(Eigen::Matrix const&, Eigen::Matrix const&, Eigen::Matrix*, double)'
../../lib/libbf_intern_libmv.a(track_region.cc.o):track_region.cc:function libmv::(anonymous namespace)::HomographyWarp::HomographyWarp(double const*, double const*, double const*, double const*): error: undefined reference to 'libmv::Homography2DFromCorrespondencesLinear(Eigen::Matrix const&, Eigen::Matrix const&, Eigen::Matrix*, double)'
collect2: error: ld returned 1 exit status
source/creator/CMakeFiles/blender.dir/build.make:580: recipe for target 'bin/blender' failed
make: *** [bin/blender] Error 1
CMakeFiles/Makefile2:8857: recipe for target 'source/creator/CMakeFiles/blender.dir/all' failed
make: *** [source/creator/CMakeFiles/blender.dir/all] Error 2
Makefile:162: recipe for target 'all' failed
make[1] : *** [all] Error 2
GNUmakefile:340: recipe for target 'all' failed
make: *** [all] Error 2
I suspect that there is something wrong with my files of the form IK_xxx.cpp? Does anyone have advice on how I should proceed?
After checking the
/lib
folder it appears that there is not a subfolder with the name libbf_intern_iksolver
anyways?
lib/linux_centos7_x86_64$ ls -a
. fftw3 llvm openimagedenoise potrace tbb
.. freetype mesa openimageio pugixml tiff
alembic glew nanovdb openjpeg python usd
blosc gmp openal opensubdiv sdl xml2
boost haru opencollada openvdb sndfile xr_openxr_sdk
embree jemalloc opencolorio osl spnav zlib
ffmpeg jpeg openexr png .svn zstd
Asked by akozi
(107 rep)
Jun 19, 2021, 10:09 PM
Last activity: Aug 12, 2023, 03:21 AM
Last activity: Aug 12, 2023, 03:21 AM