在Mac M2的Parallels中用CMake+VS构建VTK遇CPU字节序未知错误
Mac M2+Parallels Windows环境下VTK编译C1189错误解决
问题详情
在Mac M2设备上通过Parallels Desktop运行Windows系统,使用CMake+Visual Studio构建VTK 9.2.2时触发致命编译错误:
fatal error C1189: #error: "Byte order of target CPU unknown."
Visual Studio构建完成日志:
274>------ Build started: Project: ALL_BUILD, Configuration: Release ARM64 ------ 274>Building Custom Rule C:/VTK-9.2.2/src/CMakeLists.txt ========== Build: 157 succeeded, 117 failed, 0 up-to-date, 0 skipped ========== ========== Elapsed 11:48.565 ==========
错误截图:
解决步骤
- CMake配置修正:重新运行CMake时,在配置参数中添加
CMAKE_SYSTEM_PROCESSOR=ARM64和VTK_USE_64BIT_IDS=ON,强制CMake识别ARM64架构并启用64位ID支持,确保字节序检测逻辑正常触发。 - 源码手动补全字节序定义:找到VTK源码中负责字节序检测的头文件(通常是
vtkEndian.h),在文件的条件编译区块中添加ARM64的小端字节序定义:#if defined(_M_ARM64) || defined(__aarch64__) #define VTK_LITTLE_ENDIAN 1 #endif - VS编译目标校验:确认Visual Studio的解决方案平台设置为
ARM64,进入项目属性的「C/C++ -> 预处理器」,添加_M_ARM64预定义宏,保证编译器正确识别目标架构。 - 升级VTK版本:尝试切换到VTK 9.3及以上版本,新版本已针对ARM64 Windows环境修复了字节序检测的兼容性问题。
内容的提问来源于stack exchange,提问作者Hossam Matb3aa
相关产品推荐
相关产品推荐

