Título: C++ error al compilar (recipe for target 'BD.o' failed) (Error: operand type mismatch for `push') Publicado por: DonJuanPinorio en 8 Febrero 2021, 22:46 pm Tengo Problemas ya que al compilar me da estos dos errores y sobre todo el de (Error: operand type mismatch for `push') no soy capaz de solucionarlo ya que el error (recipe for target 'BD.o' failed) puede ser culpa del primero. Gracias si alguien me ayuda
Por si alguien tiene curiosidad el codigo es el siguiente: ==================================== Código
[MOD] Usar las etiquetas GeSHi para publicar codigo. Título: Re: C++ error al compilar (recipe for target 'BD.o' failed) (Error: operand type mismatch for `push') Publicado por: K-YreX en 8 Febrero 2021, 23:18 pm No recuerdo mucho de ensamblador desde que lo estudié pero buscando un poco en Internet he encontrado este enlace dónde parece que está bien explicado: https://stackoverflow.com/questions/21245245/c-uses-assemble-operand-type-mismatch-for-push
Resumiendo: si utilizas 'push' sin un sufijo 'w/l/q' para 16/32/64 bits respectivamente, el ensamblador determinará cuál es el sufijo más apropiado. Como %eax es de 32 bits, utilizará 'pushl' pero las máquinas con arquitecturas de 64 bits no soportan esa operación de 32 bits. Solución: Utilizar 'pushq %rax' y trabajar con el registro de 64 bits. Como ya digo, no tengo mucha experiencia y lo que he dicho está básicamente sacado del enlace a stackoverflow. Espero que te sirva y en caso contrario, siempre puedes echar un vistazo tú mismo a las respuestas por si encuentras algo que te sirva. Suerte :-X |