如何为armv7构建HDF5库以便与iOS一起使用?

时间:2016-10-07 12:58:37

标签: ios compilation x86-64 hdf5 armv7

我坚持使用我的iOS应用程序(Objective-C)。

我正在为我的iOS设备构建应用程序,我需要使用HDF5 library

然而,在我的编译过程中,我遇到了一些错误:

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> 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&) in VisualSearchEngine.o
  "_H5Fopen", referenced from:
      void flann::save_to_file<float>(flann::Matrix<float> 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&) in VisualSearchEngine.o
  "_H5Fcreate", referenced from:
      void flann::save_to_file<float>(flann::Matrix<float> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, 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

确实在其中一个lib上使用了以下命令行后,

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

在我的应用程序上,我使用其他框架,它们都是胖文件,至少包含架构armv7 armv7s i386和arm64,而HDF5并非如此。 所以这不是问题。

我的问题如下:如何使用armv7架构构建/编译HDF5?或者是否有可用的框架包含相应的架构?

我需要使用armv7架构,因为我使用另一个仅包含armv7架构的框架。

我被困住了,我不知道如何前进。

感谢您的帮助。

0 个答案:

没有答案