1
zu verwenden Ich benutze Visual Studio 2013 und versuche, einfache Nasm-Code auszuführen.Linker-Fehler beim Versuch, Assembler-Code in cpp Modul
main.cpp:
#include "Header.h"
void _printf() {
printf("HELLO\n");
}
int main()
{
sayHello();
return 0;
}
header.h:
#include <stdio.h>
void _printf();
extern "C" {
void sayHello();
}
und asm-Datei hello.asm:
SECTION .text
EXTERN _printf
global sayHello
sayHello:
push ebx
call _printf
pop ebx
ret
nach, dass ich die folgende Fehlermeldung erhalten:
Error 1 error LNK2019: unresolved external symbol _sayHello referenced in function _main c:\Users\art.mhtr\documents\visual studio 2013\Projects\ConsoleApplication8\ConsoleApplication8\main.obj ConsoleApplication8
ich einen Fehler nach wie vor in einer Laufzeit erhalten. Programm stürzt einfach ab – Artyom
Um Ihr '_printf' aufzurufen, müssen Sie' call __printf' verwenden. Oder gehen Sie zurück zum ursprünglichen Code und verwenden Sie 'nasm --prefix _' – Jester
Es sagt, dass '__printf' undefined ist – Artyom