Armadillo 在 iOS 上调用内部加速库
Posted
技术标签:
【中文标题】Armadillo 在 iOS 上调用内部加速库【英文标题】:Armadillo Calls Internal Accelerate Libraries on iOS 【发布时间】:2016-01-28 20:02:48 【问题描述】:我最近尝试在 ios 上使用 Armadillo 来做一些矩阵计算。该应用程序在我的开发 iPhone 上运行,但 Apple 在尝试将其发布到 Appstore 时给了我错误消息。似乎犰狳调用了一些内部的 BLAS 函数。我在网上搜索了该消息,但没有发现任何有用的信息。我还发现调用带有“cblas_”前缀的 BLAS 函数,例如cblas_dgemv,直接来自我的代码不会导致错误。然而,这使得犰狳的使用毫无意义。
不知道有没有人遇到过同样的问题,解决方法是什么。我怀疑这与 config.hpp 中的某个宏有关。非常感谢您的热心帮助。
错误信息:
非公开 API 使用:
• 应用引用了 *** 中的非公共符号:_sgemm_、_sgemv_、_ssyrk_
【问题讨论】:
【参考方案1】:Accelerate BLAS 实现支持一堆冗余符号,以方便各种 fortran 编译器的不同函数命名方案。严格来说,这些是为了(由您的 fortran 编译器)使用的,所以您可能有一些争论的理由,即它们不是私有接口。如果 AppStore 仍然给您带来麻烦,请向 Apple 提交错误并要求他们修复界面上的簿记,以便它们可以使用。
不过,在标头中开始使用 cblas_ 接口会更简单。
【讨论】:
以上是关于Armadillo 在 iOS 上调用内部加速库的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows 10 上使用 Armadillo 作为库与 CLion 和 CMake 的问题
尝试使用 Armadillo 库运行示例时出现 Xcode C++ 链接器错误