0%

Undefined symbols for architecture x86_64错误

2019年3月5日 下午8:29

注:

  1. 这个错误的意思:就是没有找到方法的实现
  2. 那我们就猜测出现的原因:
    1. cmake中没有引入我们需要的问题
    2. 编译器的版本不正确
      1. debug\release
      2. 32\64
    3. 方法实现我们忘了写了
    4. 参考:
      1. Undefined symbols for architecture x86_64 - 简书

修改之前:

修改之后:

修改方法:

1
2
3
set(VISUAL_HEADER visualizer.h)  #${VISUAL_HEADER}
set(VISUAL_SOURCE visualizer.cc)
add_executable(task3_test_ba ${BA_FILES} ${VISUAL_HEADER} ${VISUAL_SOURCE})

也是一样的错误:

unknown load command 0x32

详细错误:

1
2
3
4
5
6
Undefined symbols for architecture x86_64:
"features::Visualizer::draw_matches(std::shared_ptr<core::Image<unsigned char> const>, std::shared_ptr<core::Image<unsigned char> const>, std::vector<sfm::Correspondence2D2D, std::allocator<sfm::Correspondence2D2D> > const&)", referenced from:
visualize_matching(features::Matching::Result const&, std::shared_ptr<core::Image<unsigned char> >, std::shared_ptr<core::Image<unsigned char> >, std::vector<math::Vector<float, 2>, std::allocator<math::Vector<float, 2> > > const&, std::vector<math::Vector<float, 2>, std::allocator<math::Vector<float, 2> > > const&) in class3_test_bundle_adjustment.cc.o
"features::Visualizer::draw_keypoints(std::shared_ptr<core::Image<unsigned char> const>, std::vector<features::Visualizer::Keypoint, std::allocator<features::Visualizer::Keypoint> > const&, features::Visualizer::KeypointStyle)", referenced from:
sift_feature_matching(sfm::FeatureSet&, sfm::FeatureSet&, std::shared_ptr<core::Image<unsigned char> >, std::shared_ptr<core::Image<unsigned char> >) in class3_test_bundle_adjustment.cc.o
ld: symbol(s) not found for architecture x86_64