(Запуск MinGW на 64-битной ОС Windows 7 и GCC на Kubuntu)Проблем с вызовом функции сборки из C
Это может возможно быть просто проблема MingW, но это не удалось, по крайней мере, одну установка Kubuntu, а также , поэтому я сомневаюсь.
У меня есть короткая, простая программа на C, которая должна вызвать функцию сборки. Я скомпилирую ассемблер с помощью nasm и c-программы, используя MingW-реализацию gcc. Эти два связаны вместе с makefile - bog-simple. И тем не менее, связь не может по иску требование о том, что внешняя функция является «неопределенная ссылка»
Соответствующая часть Makefile:
assign0: ass0.o main.o
gcc -v -m32 -g -Wall -o assign0 ass0.o main.o
main.o: main.c
gcc -g -c -Wall -m32 -o main.o main.c
ass0.o: ass0.s
nasm -g -f elf -w+all -o ass0.o ass0.s
Начало файла сборки:
section .data ; data section, read-write
an: DD 0 ; this is a temporary var
section .text ; our code is always in the .text section
global do_str ; makes the function appear in global scope
extern printf
do_str: ; functions are defined as labels
[Just Code]
И декларация с файла:
extern int do_str(char* a);
Это работало, по крайней мере, один Kubuntu установка, сбой на другой, и не удалось выполнить MingW. У кого-нибудь есть идея?
Иногда символ '_' добавляется к символьным именам. Какое точное сообщение об ошибке вы получаете? –
Возможный дубликат [Добавление подчеркивания подчеркивания в символы сборки с помощью GCC на Win32?] (Http://stackoverflow.com/questions/1034852/adding-leading-underscores-to-assembly-symbols-with-gcc-on-win32) –
Вы пробовали обмен файлами {ass0.o main.o} в командной строке компоновщика? – wildplasser