Как создать библиотеку HDF5 для armv7 для использования с iOS?

#ios #compilation #x86-64 #hdf5 #armv7

#iOS #Сборник #x86-64 #hdf5 #armv7

Вопрос:

Я застрял в своем приложении для iOS (Objective-C).

Я создаю приложение для своего устройства iOS, и мне нужно использовать библиотеку HDF5.

Однако во время моей компиляции у меня возникли некоторые ошибки :

 Undefined symbols for architecture armv7:
  "_H5T_NATIVE_FLOAT_g", referenced from:
      int flann::(anonymous namespace)::get_hdf5_type<float>() in VisualSearchEngine.o
  "_H5open", referenced from:
      int flann::(anonymous namespace)::get_hdf5_type<float>() in VisualSearchEngine.o
  "_H5Dcreate2", referenced from:
      void flann::save_to_file<float>(flann::Matrix<float> constamp;, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > constamp;, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > constamp;) in VisualSearchEngine.o
  "_H5Fopen", referenced from:
      void flann::save_to_file<float>(flann::Matrix<float> constamp;, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > constamp;, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > constamp;) in VisualSearchEngine.o
  "_H5Fcreate", referenced from:
      void flann::save_to_file<float>(flann::Matrix<float> constamp;, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > constamp;, std::__1::basic_string<char, std::__1::
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
  

Я не поместил всю ошибку для лучшего чтения, но вы ее получили.

Я понимаю, что HDF5 был построен только с одной архитектурой: x86_64

Действительно, после использования следующей командной строки в одной из библиотек,

 lipo -info /usr/local/Cellar/hdf5/1.8.17/lib/libhdf5_cpp.dylib 
  

Я получил это сообщение :

 Non-fat file: /usr/local/Cellar/hdf5/1.8.17/lib/libhdf5_cpp.dylib is architecture: x86_64
  

В моем приложении я использую другие фреймворки, и все они представляют собой файл fat, который содержит по крайней мере архитектуры armv7 armv7s i386 и arm64, что не относится к HDF5.
Так что это не было проблемой.

Мой вопрос заключается в следующем: как я могу собрать / скомпилировать HDF5 с архитектурой armv7?Или, может быть, есть доступная платформа, которая содержит соответствующие архитектуры?

Мне нужно использовать с архитектурой armv7, потому что я использую другой фреймворк, который содержит только архитектуру armv7.

Я застрял и не знаю, как двигаться дальше.

Спасибо за вашу помощь.