meiroo / ORBSLAM2-OSX

Other
67 stars 35 forks source link

Undefined symbols for architecture x86_64 #1

Open stanchiang opened 8 years ago

stanchiang commented 8 years ago

I brew installed opencv, eigen, and glew and updated header file paths to fit my own system, but i run into this error ld: symbol(s) not found for architecture x86_64

here's my output if it helps

CompileC src/ORB_SLAM2/build/ORB_SLAM2.build/Debug/mono_kitti.build/Objects-normal/x86_64/Main.o Examples/Monocular/Main.cc normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
    cd /Users/stan
    export LANG=en_US.US-ASCII
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c++ -arch x86_64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -Wno-trigraphs -fpascal-strings -O0 -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-return-type -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wno-shorten-64-to-32 -Wno-newline-eof -Wno-c++11-extensions -DCMAKE_INTDIR=\"Debug\" -DCOMPILEDWITHC11 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -fasm-blocks -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -mmacosx-version-min=10.11 -g -Wno-sign-conversion -I/Users/stan/src/ORB_SLAM2/Examples/Monocular/Debug/include -I/Users/stan/src/ORB_SLAM2 -I/Users/stan/src/ORB_SLAM2/include -I/usr/local/include/eigen3 -I/Users/stan/src/ORB_SLAM2/Pangolin/include -I/Users/stan/src/ORB_SLAM2/Pangolin/build/src/include -I/usr/local/include -I/usr/local/Cellar/opencv3/3.1.0_3/include/opencv -I/usr/local/Cellar/opencv3/3.1.0_3/include -I/Users/stan/include -I/Users/stan -I/Users/stan/src/ORB_SLAM2/build/ORB_SLAM2.build/Debug/mono_kitti.build/DerivedSources/x86_64 -I/Users/stan/src/ORB_SLAM2/build/ORB_SLAM2.build/Debug/mono_kitti.build/DerivedSources -Wmost -Wno-four-char-constants -Wno-unknown-pragmas -F/Users/stan/src/ORB_SLAM2/Examples/Monocular/Debug -std=c++11 -MMD -MT dependencies -MF /Users/stan/src/ORB_SLAM2/build/ORB_SLAM2.build/Debug/mono_kitti.build/Objects-normal/x86_64/Main.d --serialize-diagnostics /Users/stan/src/ORB_SLAM2/build/ORB_SLAM2.build/Debug/mono_kitti.build/Objects-normal/x86_64/Main.dia -c /Users/stan/Examples/Monocular/Main.cc -o /Users/stan/src/ORB_SLAM2/build/ORB_SLAM2.build/Debug/mono_kitti.build/Objects-normal/x86_64/Main.o

In file included from /Users/stan/Examples/Monocular/Main.cc:30:
In file included from /usr/local/include/opencv2/opencv.hpp:73:
/usr/local/include/opencv2/ml/ml.hpp:961:18: warning: 'CvForestTree::train' hides overloaded virtual functions [-Woverloaded-virtual]
    virtual bool train( CvDTreeTrainData* trainData, const CvMat* _subsample_idx, CvRTrees* forest );
                 ^
/usr/local/include/opencv2/ml/ml.hpp:867:18: note: hidden overloaded virtual function 'CvDTree::train' declared here: different number of parameters (2 vs 3)
    virtual bool train( CvMLData* trainData, CvDTreeParams params=CvDTreeParams() );
                 ^
/usr/local/include/opencv2/ml/ml.hpp:877:26: note: hidden overloaded virtual function 'CvDTree::train' declared here: different number of parameters (8 vs 3)
    CV_WRAP virtual bool train( const cv::Mat& trainData, int flag,
                         ^
/usr/local/include/opencv2/ml/ml.hpp:1149:18: warning: 'CvBoostTree::train' hides overloaded virtual functions [-Woverloaded-virtual]
    virtual bool train( CvDTreeTrainData* trainData,
                 ^
/usr/local/include/opencv2/ml/ml.hpp:867:18: note: hidden overloaded virtual function 'CvDTree::train' declared here: different number of parameters (2 vs 3)
    virtual bool train( CvMLData* trainData, CvDTreeParams params=CvDTreeParams() );
                 ^
/usr/local/include/opencv2/ml/ml.hpp:877:26: note: hidden overloaded virtual function 'CvDTree::train' declared here: different number of parameters (8 vs 3)
    CV_WRAP virtual bool train( const cv::Mat& trainData, int flag,
                         ^
/Users/stan/Examples/Monocular/Main.cc:110:16: warning: unused variable 'ttrack' [-Wunused-variable]
        double ttrack= std::chrono::duration_cast<std::chrono::duration<double> >(t2 - t1).count();
               ^
3 warnings generated.

Ld src/ORB_SLAM2/Examples/Monocular/Debug/mono_kitti normal x86_64
    cd /Users/stan
    export MACOSX_DEPLOYMENT_TARGET=10.11
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -L/Users/stan/src/ORB_SLAM2/Examples/Monocular/Debug -F/Users/stan/src/ORB_SLAM2/Examples/Monocular/Debug -filelist /Users/stan/src/ORB_SLAM2/build/ORB_SLAM2.build/Debug/mono_kitti.build/Objects-normal/x86_64/mono_kitti.LinkFileList -Xlinker -rpath -Xlinker /Users/stan/src/ORB_SLAM2/Pangolin/build/src -mmacosx-version-min=10.11 -Xlinker -no_deduplicate -Wl,-search_paths_first -Wl,-headerpad_max_install_names /usr/local/Cellar/opencv3/3.1.0_3/lib/libopencv_videostab.3.1.0.dylib /usr/local/Cellar/opencv3/3.1.0_3/lib/libopencv_superres.3.1.0.dylib /usr/local/Cellar/opencv3/3.1.0_3/lib/libopencv_stitching.3.1.0.dylib /usr/local/Cellar/opencv3/3.1.0_3/lib/libopencv_shape.3.1.0.dylib /usr/local/Cellar/opencv3/3.1.0_3/lib/libopencv_video.3.1.0.dylib /usr/local/Cellar/opencv3/3.1.0_3/lib/libopencv_photo.3.1.0.dylib /usr/local/Cellar/opencv3/3.1.0_3/lib/libopencv_objdetect.3.1.0.dylib /usr/local/Cellar/opencv3/3.1.0_3/lib/libopencv_calib3d.3.1.0.dylib /usr/local/Cellar/opencv3/3.1.0_3/lib/libopencv_features2d.3.1.0.dylib /usr/local/Cellar/opencv3/3.1.0_3/lib/libopencv_ml.3.1.0.dylib /usr/local/Cellar/opencv3/3.1.0_3/lib/libopencv_highgui.3.1.0.dylib /usr/local/Cellar/opencv3/3.1.0_3/lib/libopencv_videoio.3.1.0.dylib /usr/local/Cellar/opencv3/3.1.0_3/lib/libopencv_imgcodecs.3.1.0.dylib /usr/local/Cellar/opencv3/3.1.0_3/lib/libopencv_imgproc.3.1.0.dylib /usr/local/Cellar/opencv3/3.1.0_3/lib/libopencv_flann.3.1.0.dylib /usr/local/Cellar/opencv3/3.1.0_3/lib/libopencv_core.3.1.0.dylib -framework AGL -framework OpenGL /usr/local/lib/libGLEW.dylib -framework Cocoa /usr/lib/libpython2.7.dylib /usr/local/lib/libavcodec.dylib /usr/local/lib/libavformat.dylib /usr/local/lib/libavutil.dylib /usr/local/lib/libswscale.dylib /usr/local/lib/libpng.dylib /usr/lib/libz.dylib /usr/local/lib/libjpeg.dylib /usr/local/lib/libtiff.dylib /usr/local/lib/libIlmImf.dylib -Xlinker -dependency_info -Xlinker /Users/stan/src/ORB_SLAM2/build/ORB_SLAM2.build/Debug/mono_kitti.build/Objects-normal/x86_64/mono_kitti_dependency_info.dat -o /Users/stan/src/ORB_SLAM2/Examples/Monocular/Debug/mono_kitti

Undefined symbols for architecture x86_64:
  "cv::FileStorage::FileStorage(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      ORB_SLAM2::System::System(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, ORB_SLAM2::System::eSensor, bool) in System.o
      ORB_SLAM2::Tracking::Tracking(ORB_SLAM2::System*, DBoW2::TemplatedVocabulary<cv::Mat, DBoW2::FORB>*, ORB_SLAM2::Map*, ORB_SLAM2::KeyFrameDatabase*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) in Tracking.o
      ORB_SLAM2::Tracking::ChangeCalibration(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in Tracking.o
  "cv::_InputArray::_InputArray(cv::Mat const&)", referenced from:
      ORB_SLAM2::Frame::Frame(cv::Mat const&, double const&, ORB_SLAM2::ORBextractor*, DBoW2::TemplatedVocabulary<cv::Mat, DBoW2::FORB>*, cv::Mat&, cv::Mat&, float const&, float const&) in Frame.o
      ORB_SLAM2::Frame::UndistortKeyPoints() in Frame.o
      ORB_SLAM2::Frame::ComputeImageBounds(cv::Mat const&) in Frame.o
      ORB_SLAM2::Frame::isInFrustum(ORB_SLAM2::MapPoint*, float) in Frame.o
      ORB_SLAM2::Initializer::ReconstructH(std::__1::vector<bool, std::__1::allocator<bool> >&, cv::Mat&, cv::Mat&, cv::Mat&, cv::Mat&, std::__1::vector<cv::Point3_<float>, std::__1::allocator<cv::Point3_<float> > >&, std::__1::vector<bool, std::__1::allocator<bool> >&, float, int) in Initializer.o
      ORB_SLAM2::Initializer::ComputeH21(std::__1::vector<cv::Point_<float>, std::__1::allocator<cv::Point_<float> > > const&, std::__1::vector<cv::Point_<float>, std::__1::allocator<cv::Point_<float> > > const&) in Initializer.o
      ORB_SLAM2::Initializer::ComputeF21(std::__1::vector<cv::Point_<float>, std::__1::allocator<cv::Point_<float> > > const&, std::__1::vector<cv::Point_<float>, std::__1::allocator<cv::Point_<float> > > const&) in Initializer.o
      ...
  "cv::_OutputArray::_OutputArray(cv::Mat const&)", referenced from:
      ORB_SLAM2::Initializer::CheckRT(cv::Mat const&, cv::Mat const&, std::__1::vector<cv::KeyPoint, std::__1::allocator<cv::KeyPoint> > const&, std::__1::vector<cv::KeyPoint, std::__1::allocator<cv::KeyPoint> > const&, std::__1::vector<std::__1::pair<int, int>, std::__1::allocator<std::__1::pair<int, int> > > const&, std::__1::vector<bool, std::__1::allocator<bool> >&, cv::Mat const&, std::__1::vector<cv::Point3_<float>, std::__1::allocator<cv::Point3_<float> > >&, float, std::__1::vector<bool, std::__1::allocator<bool> >&, float&) in Initializer.o
      ORB_SLAM2::KeyFrame::SetPose(cv::Mat const&) in KeyFrame.o
      ORB_SLAM2::LocalMapping::CreateNewMapPoints() in LocalMapping.o
      ORB_SLAM2::PnPsolver::iterate(int, bool&, std::__1::vector<bool, std::__1::allocator<bool> >&, int&) in PnPsolver.o
      ORB_SLAM2::PnPsolver::Refine() in PnPsolver.o
      ORB_SLAM2::Sim3Solver::iterate(int, bool&, std::__1::vector<bool, std::__1::allocator<bool> >&, int&) in Sim3Solver.o
      ORB_SLAM2::Sim3Solver::ComputeSim3(cv::Mat&, cv::Mat&) in Sim3Solver.o
      ...
  "cv::_OutputArray::_OutputArray(cv::Mat&)", referenced from:
      cv::Mat::clone() const in Converter.o
      ORB_SLAM2::Frame::Frame(cv::Mat const&, double const&, ORB_SLAM2::ORBextractor*, DBoW2::TemplatedVocabulary<cv::Mat, DBoW2::FORB>*, cv::Mat&, cv::Mat&, float const&, float const&) in Frame.o
      ORB_SLAM2::Frame::UndistortKeyPoints() in Frame.o
      ORB_SLAM2::Frame::ComputeImageBounds(cv::Mat const&) in Frame.o
      cv::Mat::clone() const in Frame.o
      ORB_SLAM2::Initializer::ReconstructH(std::__1::vector<bool, std::__1::allocator<bool> >&, cv::Mat&, cv::Mat&, cv::Mat&, cv::Mat&, std::__1::vector<cv::Point3_<float>, std::__1::allocator<cv::Point3_<float> > >&, std::__1::vector<bool, std::__1::allocator<bool> >&, float, int) in Initializer.o
      ORB_SLAM2::Initializer::ReconstructF(std::__1::vector<bool, std::__1::allocator<bool> >&, cv::Mat&, cv::Mat&, cv::Mat&, cv::Mat&, std::__1::vector<cv::Point3_<float>, std::__1::allocator<cv::Point3_<float> > >&, std::__1::vector<bool, std::__1::allocator<bool> >&, float, int) in Initializer.o
      ...
  "cv::eigen(cv::_InputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, int, int)", referenced from:
      ORB_SLAM2::Sim3Solver::ComputeSim3(cv::Mat&, cv::Mat&) in Sim3Solver.o
  "cv::write(cv::FileStorage&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, double)", referenced from:
      cv::FileStorage& cv::operator<<<double>(cv::FileStorage&, double const&) in System.o
  "cv::write(cv::FileStorage&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int)", referenced from:
      cv::FileStorage& cv::operator<<<int>(cv::FileStorage&, int const&) in System.o
      cv::FileStorage& cv::operator<<<DBoW2::ScoringType>(cv::FileStorage&, DBoW2::ScoringType const&) in System.o
      cv::FileStorage& cv::operator<<<DBoW2::WeightingType>(cv::FileStorage&, DBoW2::WeightingType const&) in System.o
  "cv::circle(cv::Mat&, cv::Point_<int>, int, cv::Scalar_<double> const&, int, int, int)", referenced from:
      _main in Main.o
  "cv::imshow(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cv::_InputArray const&)", referenced from:
      _main in Main.o
  "cv::Exception::Exception(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int)", referenced from:
      cv::Mat::diag(cv::Mat const&) in Initializer.o
      cv::FileStorage& cv::operator<<<int>(cv::FileStorage&, int const&) in System.o
      cv::FileStorage& cv::operator<<<DBoW2::ScoringType>(cv::FileStorage&, DBoW2::ScoringType const&) in System.o
      cv::FileStorage& cv::operator<<<DBoW2::WeightingType>(cv::FileStorage&, DBoW2::WeightingType const&) in System.o
      cv::FileStorage& cv::operator<<<double>(cv::FileStorage&, double const&) in System.o
      cv::Mat::operator cv::Vec<float, 3><float, 3>() const in Main.o
  "cv::operator<<(cv::FileStorage&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      cv::operator<<(cv::FileStorage&, char const*) in System.o
      DBoW2::TemplatedVocabulary<cv::Mat, DBoW2::FORB>::save(cv::FileStorage&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const in System.o
  "cv::FileStorage::operator[](std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const", referenced from:
      DBoW2::TemplatedVocabulary<cv::Mat, DBoW2::FORB>::load(cv::FileStorage const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in System.o
  "vtable for cv::_InputArray", referenced from:
      cv::_InputArray::_InputArray<float>(cv::Mat_<float> const&) in KeyFrame.o
      cv::_InputArray::_InputArray<float>(cv::Mat_<float> const&) in LocalMapping.o
      cv::_InputArray::_InputArray<float>(cv::Mat_<float> const&) in Sim3Solver.o
      cv::_InputArray::_InputArray<cv::Point3_<float> >(std::__1::vector<cv::Point3_<float>, std::__1::allocator<cv::Point3_<float> > > const&) in Main.o
      cv::_InputArray::_InputArray<cv::Point_<float> >(std::__1::vector<cv::Point_<float>, std::__1::allocator<cv::Point_<float> > > const&) in Main.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for cv::_OutputArray", referenced from:
      cv::_OutputArray::_OutputArray<float>(cv::Mat_<float>&) in KeyFrame.o
      cv::_OutputArray::_OutputArray<float>(cv::Mat_<float>&) in LocalMapping.o
      cv::_OutputArray::_OutputArray<float>(cv::Mat_<float>&) in Sim3Solver.o
      cv::_OutputArray::_OutputArray<cv::Point_<float> >(std::__1::vector<cv::Point_<float>, std::__1::allocator<cv::Point_<float> > >&) in Main.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
niklio commented 7 years ago

Hi @stanchiang

I'm running into the same issue. Were you able to find a solution?

Thanks!

Liuyangdong commented 7 years ago

Hi @nliolios24 You can change your opencv version from 3.1.0 to 2.4.12. image