我对 Xcode 非常陌生,正在 macOS Catalina 10.15.7 上使用 Xcode 12.4 (12D4e) 为 macOS 开发 SIMD(SSE/AVX) 代码。
这个非常简单的代码可以在调试方案中编译:
#include <immintrin.h>
int main(int argc, const char * argv[]) {
return 0;
}
但是在发布方案中, header 会出现错误:“mmintrin.h”的这一行“函数调用的参数太少,预期为 2,有 0”。
__builtin_ia32_emms();
我该怎么做才能在发布方案中编译它?
最佳答案
如果您有任何特定于 Intel 的代码(例如 Intel 内在函数),那么您需要确保您的发布版本仅针对 x86-64 架构设置。在 Xcode 12 中,默认情况下是在发布版本中同时针对 x86-64 和 Apple Silicon 进行构建,当在构建的 Apple Silicon 部分中遇到 Intel 内在函数时,这会导致虚假错误消息。
关于c++ - Release模式下的 Xcode 无法编译 <immintrin.h> - 提示 __builtin_ia32_emms(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66453127/