我正在尝试使用 gcc 编译器在 Code::Blocks 中编译一个旧的 C++ 软件项目,在修复了一些其他问题后,我遇到了困难:该项目有一个文件,其中包含 Intel 风格的内联 ASM作为
_asm {
code here
}
并且编译器拒绝编译它并显示“错误:‘_asm’未在此范围内声明”。
我花了一段时间在谷歌上搜索解决方案,但我唯一能找到的是将 -masm=intel
添加到构建选项(我已经尝试过但不能开始工作),或者将代码转换为 asm ("code here");
(这是不可行的,因为 ASM 的数量巨大)。有谁知道如何让 gcc 按原样编译这段代码,还是我应该放弃并使用不同的编译器?
最佳答案
GCC 使用 very different syntax对于内联汇编程序,因此您将无法通过微不足道的更改来处理它。我看到以下选项:
- 用 GCC 语法或 C 代码重写所有内容
- 制作一些脚本来翻译成 GCC 语法(非平凡的任务)
- 使用为(MSVC?)编写的任何编译器编译代码
关于c++ - gcc 中的 Intel 风格内联汇编,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11243340/