Reputation: 55
I am trying to compile an old C++ software project in Code::Blocks using the gcc compiler, and after fixing a few other issues, I've hit a wall: the project has a file with Intel-style inline ASM written as
_asm {
code here
}
and the compiler refuses to compile it with "error: '_asm' was not declared in this scope".
I've spent a while Googling around looking for solutions, but the only ones I can find are to add -masm=intel
to the build options (which I've tried and can't get to work), or to convert the code to asm ("code here");
(which isn't feasible because of the sheer amount of ASM). Does anyone know how I can get gcc to compile this code as-is, or should I give up and use a different compiler?
Upvotes: 5
Views: 2867
Reputation: 17114
You simply can't get gcc to compile the code 'as is'. If you need to compile this thing using gcc, you have to rewrite the code, in C++ or gcc-compatible asm. If there really is a lot of assembly code -- say, 200 instructions or more -- it might be worthwhile learning the gcc assembler syntax; if not, code it in C++.
Upvotes: 0
Reputation: 25268
GCC uses a very different syntax for inline assembler, so you won't be able to handle it with trivial changes. I see the following options:
Upvotes: 2