我正在编写自己的独立模块,并想使用 cblas_dasum 来有效计算双精度数组的绝对值之和。虽然弹出一条消息说我必须
指定 ACCELERATE_NEW_LAPACK=1 和 ACCELERATE_LAPACK_ILP64=1 作为预处理器 Xcode 构建设置中的宏。
不幸的是,该函数已从 iOS 16.4+ 中弃用(我仍然需要支持),而且我根本看不到任何 Xcode 构建设置来设置此标志。
如何解决?
我所看到的:
如果弃用,操作系统可以继续支持弃用多年。但无论如何:
要在 Xcode 构建设置中设置宏,请转至 -> TARGETS -> Build Settings -> Type: Processors Macros -> 输入您想要的宏名称。然后设置即可。
如果您想在代码中对特定方法静默弃用消息,请使用此技术:
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
- (void)YourDeprecatedMethod {
//content...
}
#pragma GCC diagnostic pop
根据需要尝试一下。
重要
Apple 在 Accelerate 下提供了 BLAS 和 LAPACK 库 框架符合LAPACK 3.9.1。这些新接口 提供附加功能以及新的 ILP64 接口。到 使用新接口,在包含之前定义 ACCELERATE_NEW_LAPACK Accelerate 或 vecLib 标头。对于 ILP64 接口,还定义 ACCELERATE_LAPACK_ILP64。对于 Swift 项目,请指定 ACCELERATE_NEW_LAPACK=1 和 ACCELERATE_LAPACK_ILP64=1 作为预处理器 Xcode 构建设置中的宏。