다음 단계에 따라 컴퓨터에 클린 블렌더를 설치하려고 합니다.이 페이지
make 명령 이후 웹 페이지의 빌드 단계에서 빌드가 충돌합니다.
$ 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<IK_QTask*, std::allocator<IK_QTask*> >&): 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<IK_QTask*, std::allocator<IK_QTask*> >&): 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<IK_QTask*, std::allocator<IK_QTask*> >&): 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<IK_QTask*, std::allocator<IK_QTask*> >, 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<IK_QTask*, std::allocator<IK_QTask*> >, 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<IK_QTask*, std::allocator<IK_QTask*> >, 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<double, 3, 1, 0, 3, 1>&, 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<double, 3, 1, 0, 3, 1>&, 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<double, 3, 1, 0, 3, 1>&, 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<double, 3, 1, 0, 3, 1>&): 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<double, 3, 1, 0, 3, 1>&): 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<double, 3, 1, 0, 3, 1>&, 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<double, 3, 1, 0, 3, 1>&): 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<double, 3, 1, 0, 3, 1>&): 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<double, 3, 1, 0, 3, 1> 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<double, 3, 1, 0, 3, 1> 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<double, 3, 1, 0, 3, 1> 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<double, 3, 1, 0, 3, 1> 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<double, 3, 1, 0, 3, 1> 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<double, 3, 1, 0, 3, 1> 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<double, 3, 1, 0, 3, 1> 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<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, libmv::EstimateHomographyOptions const&, Eigen::Matrix<double, 3, 3, 0, 3, 3>*)'
../../lib/libbf_intern_libmv.a(initialize_reconstruction.cc.o):initialize_reconstruction.cc:function libmv::EuclideanReconstructTwoFrames(std::vector<libmv::Marker, Eigen::aligned_allocator<libmv::Marker> > const&, libmv::EuclideanReconstruction*): error: undefined reference to 'libmv::NormalizedEightPointSolver(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<double, 3, 3, 0, 3, 3>*)'
../../lib/libbf_intern_libmv.a(initialize_reconstruction.cc.o):initialize_reconstruction.cc:function libmv::EuclideanReconstructTwoFrames(std::vector<libmv::Marker, Eigen::aligned_allocator<libmv::Marker> > const&, libmv::EuclideanReconstruction*): error: undefined reference to 'libmv::FundamentalToEssential(Eigen::Matrix<double, 3, 3, 0, 3, 3> const&, Eigen::Matrix<double, 3, 3, 0, 3, 3>*)'
../../lib/libbf_intern_libmv.a(initialize_reconstruction.cc.o):initialize_reconstruction.cc:function libmv::EuclideanReconstructTwoFrames(std::vector<libmv::Marker, Eigen::aligned_allocator<libmv::Marker> > const&, libmv::EuclideanReconstruction*): error: undefined reference to 'libmv::MotionFromEssentialAndCorrespondence(Eigen::Matrix<double, 3, 3, 0, 3, 3> const&, Eigen::Matrix<double, 3, 3, 0, 3, 3> const&, Eigen::Matrix<double, 2, 1, 0, 2, 1> const&, Eigen::Matrix<double, 3, 3, 0, 3, 3> const&, Eigen::Matrix<double, 2, 1, 0, 2, 1> const&, Eigen::Matrix<double, 3, 3, 0, 3, 3>*, Eigen::Matrix<double, 3, 1, 0, 3, 1>*)'
../../lib/libbf_intern_libmv.a(initialize_reconstruction.cc.o):initialize_reconstruction.cc:function libmv::ProjectiveReconstructTwoFrames(std::vector<libmv::Marker, Eigen::aligned_allocator<libmv::Marker> > const&, libmv::ProjectiveReconstruction*): error: undefined reference to 'libmv::NormalizedEightPointSolver(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<double, 3, 3, 0, 3, 3>*)'
../../lib/libbf_intern_libmv.a(initialize_reconstruction.cc.o):initialize_reconstruction.cc:function libmv::ProjectiveReconstructTwoFrames(std::vector<libmv::Marker, Eigen::aligned_allocator<libmv::Marker> > const&, libmv::ProjectiveReconstruction*): error: undefined reference to 'libmv::ProjectionsFromFundamental(Eigen::Matrix<double, 3, 3, 0, 3, 3> const&, Eigen::Matrix<double, 3, 4, 0, 3, 4>*, Eigen::Matrix<double, 3, 4, 0, 3, 4>*)'
../../lib/libbf_intern_libmv.a(keyframe_selection.cc.o):keyframe_selection.cc:function libmv::SelectKeyframesBasedOnGRICAndVariance(libmv::Tracks const&, libmv::CameraIntrinsics const&, std::vector<int, Eigen::aligned_allocator<int> >&): 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<int, Eigen::aligned_allocator<int> >&): error: undefined reference to 'libmv::EstimateHomography2DFromCorrespondences(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, libmv::EstimateHomographyOptions const&, Eigen::Matrix<double, 3, 3, 0, 3, 3>*)'
../../lib/libbf_intern_libmv.a(keyframe_selection.cc.o):keyframe_selection.cc:function libmv::SelectKeyframesBasedOnGRICAndVariance(libmv::Tracks const&, libmv::CameraIntrinsics const&, std::vector<int, Eigen::aligned_allocator<int> >&): 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<int, Eigen::aligned_allocator<int> >&): error: undefined reference to 'libmv::EstimateFundamentalFromCorrespondences(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, libmv::EstimateFundamentalOptions const&, Eigen::Matrix<double, 3, 3, 0, 3, 3>*)'
../../lib/libbf_intern_libmv.a(keyframe_selection.cc.o):keyframe_selection.cc:function libmv::SelectKeyframesBasedOnGRICAndVariance(libmv::Tracks const&, libmv::CameraIntrinsics const&, std::vector<int, Eigen::aligned_allocator<int> >&): error: undefined reference to 'libmv::SymmetricGeometricDistance(Eigen::Matrix<double, 3, 3, 0, 3, 3> const&, Eigen::Matrix<double, 2, 1, 0, 2, 1> const&, Eigen::Matrix<double, 2, 1, 0, 2, 1> const&)'
../../lib/libbf_intern_libmv.a(keyframe_selection.cc.o):keyframe_selection.cc:function libmv::SelectKeyframesBasedOnGRICAndVariance(libmv::Tracks const&, libmv::CameraIntrinsics const&, std::vector<int, Eigen::aligned_allocator<int> >&): error: undefined reference to 'libmv::SymmetricEpipolarDistance(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<double, 2, 1, 0, 2, 1> const&, Eigen::Matrix<double, 2, 1, 0, 2, 1> const&)'
../../lib/libbf_intern_libmv.a(keyframe_selection.cc.o):keyframe_selection.cc:function libmv::SelectKeyframesBasedOnGRICAndVariance(libmv::Tracks const&, libmv::CameraIntrinsics const&, std::vector<int, Eigen::aligned_allocator<int> >&): error: undefined reference to 'libmv::FundamentalToEssential(Eigen::Matrix<double, 3, 3, 0, 3, 3> const&, Eigen::Matrix<double, 3, 3, 0, 3, 3>*)'
../../lib/libbf_intern_libmv.a(keyframe_selection.cc.o):keyframe_selection.cc:function libmv::SelectKeyframesBasedOnGRICAndVariance(libmv::Tracks const&, libmv::CameraIntrinsics const&, std::vector<int, Eigen::aligned_allocator<int> >&): error: undefined reference to 'libmv::MotionFromEssentialAndCorrespondence(Eigen::Matrix<double, 3, 3, 0, 3, 3> const&, Eigen::Matrix<double, 3, 3, 0, 3, 3> const&, Eigen::Matrix<double, 2, 1, 0, 2, 1> const&, Eigen::Matrix<double, 3, 3, 0, 3, 3> const&, Eigen::Matrix<double, 2, 1, 0, 2, 1> const&, Eigen::Matrix<double, 3, 3, 0, 3, 3>*, Eigen::Matrix<double, 3, 1, 0, 3, 1>*)'
../../lib/libbf_intern_libmv.a(resect.cc.o):resect.cc:function libmv::EuclideanResect(std::vector<libmv::Marker, Eigen::aligned_allocator<libmv::Marker> > const&, libmv::EuclideanReconstruction*, bool): error: undefined reference to 'libmv::euclidean_resection::EuclideanResection(Eigen::Matrix<double, 2, -1, 0, 2, -1> const&, Eigen::Matrix<double, 3, -1, 0, 3, -1> const&, Eigen::Matrix<double, 3, 3, 0, 3, 3>*, Eigen::Matrix<double, 3, 1, 0, 3, 1>*, 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<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<double, 3, 3, 0, 3, 3>*, 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<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, Eigen::Matrix<double, 3, 3, 0, 3, 3>*, double)'
collect2: error: ld returned 1 exit status
source/creator/CMakeFiles/blender.dir/build.make:580: recipe for target 'bin/blender' failed
make[3]: *** [bin/blender] Error 1
CMakeFiles/Makefile2:8857: recipe for target 'source/creator/CMakeFiles/blender.dir/all' failed
make[2]: *** [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
IK_xxx.cpp 파일에 문제가 있는 것 같습니다. 내가 어떻게 진행해야 하는지에 대한 제안이 있는 사람이 있나요?
폴더를 확인해 보니 /lib
해당 이름의 하위 폴더가 없는 것 같나요 libbf_intern_iksolver
?
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
답변1
마지막 오류 메시지는 링크할 때 무언가를 찾을 수 없었지만 그렇지 않으면 빌드가 제대로 작동한다는 것을 의미합니다. 이상한.
어쩌면 일부 라이브러리(오류에 언급된 라이브러리)가 잘못된 버전일까요? 아니면 어딘가에 빠진 것이 있습니까?
Blender 패키지는 오픈 소스이며 매우 유명합니다. 배포판에 적합한 패키지가 있어야 하며, 소스 패키지를 가져와서 패키지를 분석하세요. 배포 패치가 필요할 수도 있고, 이를 시작점으로 사용하여 자신만의 최신 및 최고의 패치를 구축할 수도 있습니다.
답변2
또는 이 많은 작업을 피하려면 다음 위치에서 사전 구축된 Blender 버전을 다운로드할 수 있습니다.https://www.blender.org/download/리눅스용.
그런 다음 다운로드 위치에서 파일의 압축을 풀고 폴더를 다음으로 이동합니다 usr/local
.
$ cd ~/Downloads
$ tar -xf blender-2.93.0-linux-x64.tar.xz
$ sudo mv blender-2.93.0-stable+blender-v293-release /usr/local
blender
그런 다음 폴더 내에서 실행 파일을 실행하고 /usr/local
, 일단 실행되면 프로그램을 마우스 오른쪽 버튼으로 클릭하고 create shortcut
블렌더에 대한 향후 쉬운 액세스를 선택하십시오.