我正在尝试使用gcc编译器在Code :: Blocks中编译一个旧的C ++软件项目,在解决了一些其他问题后,我发现了一个问题:该项目有一个带有Intel风格内联的文件ASM写成
_asm {
code here
}
并且编译器拒绝使用"错误编译它:' _asm'未在此范围内宣布"。
我花了一段时间在谷歌搜索寻找解决方案,但我唯一能找到的是将-masm=intel
添加到构建选项中(我已经尝试过了,并且可以&#t; t开始工作),或者将代码转换为asm ("code here");
(由于ASM的数量庞大,这是不可行的)。有谁知道如何让gcc按原样编译这段代码,还是应该放弃并使用不同的编译器?
答案 0 :(得分:2)
GCC使用very different syntax作为内联汇编程序,因此您将无法通过微不足道的更改来处理它。我看到以下选项:
答案 1 :(得分:0)
你根本无法让gcc按原样编译代码。如果你需要使用gcc编译这个东西,你必须用C ++或gcc兼容的asm重写代码。如果真的有很多汇编代码 - 比方说200条指令或更多 - 那么学习gcc汇编语法可能是值得的;如果没有,请用C ++编写。