如何解决处于发布模式的 Xcode 无法编译 <immintrin.h> - 抱怨 __builtin_ia32_emms()
我对 Xcode 非常陌生,正在 macOS Catalina 10.15.7 上使用 Xcode 12.4 (12D4e) 为 macOS 开发 SIMD(SSE/AVX) 代码。
这个非常简单的代码可以在 Debug 方案中编译:
#include <immintrin.h>
int main(int argc,const char * argv[]) {
return 0;
}
但是在 Release Scheme 中,标题出错:“函数调用的参数太少,预期为 2,有 0”这一行“mmintrin.h”。
__builtin_ia32_emms();
如何在 Release 方案中编译它?
解决方法
如果您有任何特定于 Intel 的代码(例如 Intel 内在函数),那么您需要确保您的 Release 版本仅针对 x86-64 架构设置。在 Xcode 12 中,默认是在 Release 版本中为 x86-64 和 Apple Silicon 构建,这会导致在构建的 Apple Silicon 部分遇到 Intel 内在函数时产生虚假错误消息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。