Sample Header Ad - 728x90

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