如何在CMake构建中启用内联汇编以解决__asm编译报错问题
解决CMake构建时__asm内联汇编不支持的问题
问题原因
MSVC的x64编译器不支持__asm关键字,只有x86(32位)编译器才支持该扩展。你当前用CMake默认生成的是64位项目,导致编译报错;而CLion能正常构建,是因为它默认配置了32位目标架构。
解决方案
修改CMake生成项目的命令,明确指定32位架构:
步骤1:重新生成CMake项目
删除原build目录后,执行以下命令:
mkdir build cd build cmake -G "Visual Studio 16 2019" -A Win32 ..
-A Win32参数强制生成32位Visual Studio项目,对应使用支持__asm的x86编译器。
步骤2:重新构建项目
执行构建命令:
cmake --build .
额外说明
如果需要64位版本,无法直接使用__asm,需将内联汇编代码迁移为独立的MASM汇编文件(.asm),或者改用MSVC提供的**编译器内部函数(Intrinsics)**替代。但考虑到原项目在CLion可正常运行,优先选择32位架构的方案即可。
内容的提问来源于stack exchange,提问作者quarks
相关产品推荐
相关产品推荐

