extern "C" void _main(multiboot_data* mbd, unsigned int magic); void _main(void* mbd, unsigned int magic) { } -------------------------------------------------------------------- g++ -o main.o -c main.cpp -Wall -Werror -nostdlib -nostartfiles -nodefaultlibs -------------------------------------------------------------------- cc1plus: warnings being treated as errors main.cpp:1: warning: ‘_main’ initialized and declared ‘extern’ main.cpp:1: error: variable or field ‘_main’ declared void main.cpp:1: error: ‘multiboot_data’ was not declared in this scope main.cpp:1: error: ‘mbd’ was not declared in this scope main.cpp:1: error: expected primary-expression before ‘unsigned’ main.cpp:1: error: initializer expression list treated as compound expression main.cpp: In function ‘void _main(void*, unsigned int)’: main.cpp:3: error: ‘void _main(void*, unsigned int)’ redeclared as different kind of symbol main.cpp:1: error: previous declaration of ‘int _main’