Ошибка компоновки при интеграции библиотеки С ++ в ios - PullRequest
0 голосов
/ 12 апреля 2020

enter image description here

Это мое файловое дерево в проекте

И ошибка появляется, как показано ниже

Ld /Users/chanwoo/Library/Developer/Xcode/DerivedData/face-recog-test9-fauksbwwzfttmcdxrlvcyghtcloj/Build/Products/Release-iphoneos/face-recog-test9.app/face-recog-test9 normal arm64 (in target 'face-recog-test9' from project 'face-recog-test9')
    cd /Users/chanwoo/Documents/Repositories/resonance/ios_projects/face-recog-test9
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -target arm64-apple-ios13.4 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.4.sdk -L/Users/chanwoo/Library/Developer/Xcode/DerivedData/face-recog-test9-fauksbwwzfttmcdxrlvcyghtcloj/Build/Products/Release-iphoneos -L/Users/chanwoo/Documents/Repositories/resonance/ios_projects/face-recog-test9/lib/ -F/Users/chanwoo/Library/Developer/Xcode/DerivedData/face-recog-test9-fauksbwwzfttmcdxrlvcyghtcloj/Build/Products/Release-iphoneos -filelist /Users/chanwoo/Library/Developer/Xcode/DerivedData/face-recog-test9-fauksbwwzfttmcdxrlvcyghtcloj/Build/Intermediates.noindex/face-recog-test9.build/Release-iphoneos/face-recog-test9.build/Objects-normal/arm64/face-recog-test9.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -dead_strip -Xlinker -object_path_lto -Xlinker /Users/chanwoo/Library/Developer/Xcode/DerivedData/face-recog-test9-fauksbwwzfttmcdxrlvcyghtcloj/Build/Intermediates.noindex/face-recog-test9.build/Release-iphoneos/face-recog-test9.build/Objects-normal/arm64/face-recog-test9_lto.o -fembed-bitcode-marker -stdlib=libc++ -fobjc-arc -fobjc-link-runtime -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos -L/usr/lib/swift -Xlinker -add_ast_path -Xlinker /Users/chanwoo/Library/Developer/Xcode/DerivedData/face-recog-test9-fauksbwwzfttmcdxrlvcyghtcloj/Build/Intermediates.noindex/face-recog-test9.build/Release-iphoneos/face-recog-test9.build/Objects-normal/arm64/face_recog_test9.swiftmodule -Xlinker -dependency_info -Xlinker /Users/chanwoo/Library/Developer/Xcode/DerivedData/face-recog-test9-fauksbwwzfttmcdxrlvcyghtcloj/Build/Intermediates.noindex/face-recog-test9.build/Release-iphoneos/face-recog-test9.build/Objects-normal/arm64/face-recog-test9_dependency_info.dat -o /Users/chanwoo/Library/Developer/Xcode/DerivedData/face-recog-test9-fauksbwwzfttmcdxrlvcyghtcloj/Build/Products/Release-iphoneos/face-recog-test9.app/face-recog-test9

Undefined symbols for architecture arm64:
  "dlib::scrollable_region::set_total_rect_size(unsigned long, unsigned long)", referenced from:
      void dlib::image_display::set_image<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > const&) in Test.o
      void dlib::image_display::set_image<dlib::matrix_op<dlib::op_heatmap<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > >(dlib::matrix_op<dlib::op_heatmap<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > const&) in Test.o
      void dlib::image_display::set_image<dlib::matrix_op<dlib::op_jet<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > >(dlib::matrix_op<dlib::op_jet<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > const&) in Test.o
      void dlib::image_display::set_image<dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > const&) in Test.o
  "dlib::base_window::close_window()", referenced from:
      dlib::drawable_window::~drawable_window() in Test.o
  "dlib::image_display::get_image_display_rect() const", referenced from:
      void dlib::image_window::set_image<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > const&) in Test.o
      void dlib::image_window::set_image<dlib::matrix_op<dlib::op_heatmap<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > >(dlib::matrix_op<dlib::op_heatmap<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > const&) in Test.o
      void dlib::image_window::set_image<dlib::matrix_op<dlib::op_jet<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > >(dlib::matrix_op<dlib::op_jet<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > const&) in Test.o
      void dlib::image_window::set_image<dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > const&) in Test.o
  "dlib::base_window::invalidate_rectangle(dlib::rectangle const&)", referenced from:
      dlib::image_display::disable_overlay_editing() in Test.o
      void dlib::image_display::set_image<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > const&) in Test.o
      void dlib::image_display::set_image<dlib::matrix_op<dlib::op_heatmap<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > >(dlib::matrix_op<dlib::op_heatmap<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > const&) in Test.o
      void dlib::image_display::set_image<dlib::matrix_op<dlib::op_jet<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > >(dlib::matrix_op<dlib::op_jet<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > const&) in Test.o
      void dlib::image_display::set_image<dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > const&) in Test.o
  "dlib::base_window::base_window(bool, bool)", referenced from:
      dlib::drawable_window::drawable_window(bool, bool) in Test.o
  "dlib::base_window::~base_window()", referenced from:
      dlib::drawable_window::drawable_window(bool, bool) in Test.o
      dlib::drawable_window::~drawable_window() in Test.o
  "dlib::base_window::set_size(int, int)", referenced from:
      void dlib::image_window::set_image<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > const&) in Test.o
      void dlib::image_window::set_image<dlib::matrix_op<dlib::op_heatmap<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > >(dlib::matrix_op<dlib::op_heatmap<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > const&) in Test.o
      void dlib::image_window::set_image<dlib::matrix_op<dlib::op_jet<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > >(dlib::matrix_op<dlib::op_jet<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > const&) in Test.o
      void dlib::image_window::set_image<dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > const&) in Test.o
  "vtable for dlib::image_window", referenced from:
      dlib::image_window::image_window<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in Test.o
      dlib::image_window::image_window<dlib::matrix_op<dlib::op_heatmap<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > >(dlib::matrix_op<dlib::op_heatmap<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > const&) in Test.o
      dlib::image_window::image_window<dlib::matrix_op<dlib::op_jet<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > >(dlib::matrix_op<dlib::op_jet<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > const&) in Test.o
      dlib::image_window::image_window<dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in Test.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "dlib::base_window::set_title(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      dlib::image_window::image_window<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in Test.o
      dlib::image_window::image_window<dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in Test.o
  "dlib::entropy_decoder_kernel_2::decode(unsigned int, unsigned int)", referenced from:
      dlib::entropy_decoder_model_kernel_5<256ul, dlib::entropy_decoder_kernel_2, 200000ul, 4ul>::decode(unsigned long&) in Test.o
      dlib::entropy_decoder_model_kernel_4<256ul, dlib::entropy_decoder_kernel_2, 200000ul, 4ul>::decode(unsigned long&) in Test.o
  "dlib::entropy_decoder_kernel_2::get_target(unsigned int)", referenced from:
      dlib::entropy_decoder_model_kernel_5<256ul, dlib::entropy_decoder_kernel_2, 200000ul, 4ul>::decode(unsigned long&) in Test.o
      dlib::entropy_decoder_model_kernel_4<256ul, dlib::entropy_decoder_kernel_2, 200000ul, 4ul>::decode(unsigned long&) in Test.o
  "vtable for dlib::drawable_window", referenced from:
      dlib::drawable_window::drawable_window(bool, bool) in Test.o
      dlib::drawable_window::~drawable_window() in Test.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "dlib::entropy_decoder_kernel_2::entropy_decoder_kernel_2()", referenced from:
      void dlib::load_dng<dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> >&, std::__1::basic_istream<char, std::__1::char_traits<char> >&) in Test.o
  "dlib::base_window::wait_until_closed() const", referenced from:
      Test::test(int, char**) in Test.o
  "dlib::popup_menu_region::disable()", referenced from:
      void dlib::image_display::set_image<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > const&) in Test.o
      void dlib::image_display::set_image<dlib::matrix_op<dlib::op_heatmap<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > >(dlib::matrix_op<dlib::op_heatmap<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > const&) in Test.o
      void dlib::image_display::set_image<dlib::matrix_op<dlib::op_jet<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > >(dlib::matrix_op<dlib::op_jet<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > const&) in Test.o
      void dlib::image_display::set_image<dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > const&) in Test.o
  "dlib::image_window::get_next_double_click(dlib::vector<long, 2l>&, unsigned long&)", referenced from:
      Test::test(int, char**) in Test.o
  "_USER_ERROR__missing_dlib_all_source_cpp_file__OR__inconsistent_use_of_DEBUG_or_ENABLE_ASSERTS_preprocessor_directives_", referenced from:
      __GLOBAL__sub_I_Test.cpp in Test.o
  "dlib::entropy_decoder_kernel_2::set_stream(std::__1::basic_istream<char, std::__1::char_traits<char> >&)", referenced from:
      void dlib::load_dng<dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> >&, std::__1::basic_istream<char, std::__1::char_traits<char> >&) in Test.o
  "dlib::image_display::~image_display()", referenced from:
      dlib::image_window::image_window<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in Test.o
      dlib::image_window::image_window<dlib::matrix_op<dlib::op_heatmap<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > >(dlib::matrix_op<dlib::op_heatmap<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > const&) in Test.o
      dlib::image_window::image_window<dlib::matrix_op<dlib::op_jet<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > >(dlib::matrix_op<dlib::op_jet<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > const&) in Test.o
      dlib::image_window::image_window<dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in Test.o
  "dlib::image_window::~image_window()", referenced from:
      Test::test(int, char**) in Test.o
  "dlib::image_display::image_display(dlib::drawable_window&)", referenced from:
      dlib::image_window::image_window<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in Test.o
      dlib::image_window::image_window<dlib::matrix_op<dlib::op_heatmap<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > >(dlib::matrix_op<dlib::op_heatmap<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > const&) in Test.o
      dlib::image_window::image_window<dlib::matrix_op<dlib::op_jet<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > >(dlib::matrix_op<dlib::op_jet<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > const&) in Test.o
      dlib::image_window::image_window<dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in Test.o
  "dlib::entropy_decoder_kernel_2::~entropy_decoder_kernel_2()", referenced from:
      void dlib::load_dng<dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> >&, std::__1::basic_istream<char, std::__1::char_traits<char> >&) in Test.o
  "Test::add(int, int)", referenced from:
      -[Wrapper add_wrapper:add:] in example.o
  "dlib::image_window::on_image_clicked(dlib::vector<long, 2l> const&, bool, unsigned long)", referenced from:
      dlib::image_window::image_window<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in Test.o
      dlib::image_window::image_window<dlib::matrix_op<dlib::op_heatmap<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > >(dlib::matrix_op<dlib::op_heatmap<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > const&) in Test.o
      dlib::image_window::image_window<dlib::matrix_op<dlib::op_jet<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > >(dlib::matrix_op<dlib::op_jet<dlib::array2d<unsigned char, dlib::memory_manager_stateless_kernel_1<char> > > > const&) in Test.o
      dlib::image_window::image_window<dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > >(dlib::array2d<dlib::rgb_pixel, dlib::memory_manager_stateless_kernel_1<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in Test.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

enter image description here

Прежде всего, я понятия не имею, как компоновщик XCode находит именно тело в libdlib.a, хотя я не указал его полный путь

  • путь поиска в библиотеке: $ (PROJECT_DIR) / lib

Я хочу вызвать функцию из dlib в Test cpp source и обернуть ее, используя пример source, и, наконец, вызвать swift code

Что с ним не так?

Окр.

  • Ма c (OSX) Каталина 10.15.4

  • SwiftUI (работает с)

  • XCode 11,4

  • iPhone 6S

  • IOS 13.4.1

1 Ответ

0 голосов
/ 12 апреля 2020

Эта ошибка:

Неопределенные символы для архитектуры arm64

означает, что библиотека, которую вы пытаетесь интегрировать, построена для архитектуры, отличной от arm64, ты пытаешься бежать. Вам нужно пересобрать библиотеку C ++ до arm64 и затем интегрировать ее.

...