Есть ассемблерный код, главная процедура, с которой начинается программа, находится в нём. Как присоединить к этому коду функции на C++? Я пробовал создать в ассемблерном коде процедуру main (глобальную) и писать дерективу extern для подлючаемой функции, которую писал в отдельном cpp-файле. Потом компилировал в объекный код Elf каждый файл по отдельности и пытался линковать их с помощью gcc. Но у меня ничего не вышло. Как можно сделать, чтобы вышло? Компилирую: nasm -f elf one.asm g++ -Wall -c two.cpp Компоную: gcc -o program one.o two.o Получаю: one.o: In function `main': one.asm.text+0xb): undefined reference to `myfunction' two.o: In function `myfunction()': two.cpp.text+0xa): undefined reference to `std::cout' two.cpp.text+0xf): undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(int)' two.o: In function `__static_initialization_and_destruction_0(int, int)': two.cpp.text+0x38): undefined reference to `std::ios_base::Init::Init()' two.cpp.text+0x3d): undefined reference to `std::ios_base::Init::~Init()'
two.cpp: extern "C" myfunction(); two.cpp: нужны библиотеки, в которых находятся все эти undefined reference, т.е. вместе с one.o и two.o нужно линковать еще и эти библиотеки.