у меня есть набор инструментов gcc версии 2.95.2 19991024 (выпуск), и теперь мне нужно использовать функцию сборки, которая находится в файле, расположенном в той же папке, что и makefile.
Я пробовал множество способов поместить этот файл в свою цепочку инструментов, но безуспешно.
В основном я заявляю, что в ASM:
.globl util_MyFunc
util_MyFunc:
...
И в основной пустоте файла C:
extern void util_MyFunc();
int main(void) {
util_MyFunc();
...
Когда я компилирую, я получаю ошибку, связанную с нераспознаванием:
/cygdrive/c/MyDev/tmp/main.o(.text+0x8bc): undefined reference to `util_MyFunc'
make: *** [test.o] Error 1
Спасибо!
РЕДАКТИРОВАТЬ:
Я пытался использовать следующее для создания файла «.o» из файла asm.
C:\MyDev>gcc -c test.asm -o test.o
Это приводит к:
gcc: utils.asm: linker input file unused since linking not done
or:
C:\MyDev>gcc test.asm -o test.o
но...:
ld: cannot open crt0.o: No such file or directory
gcc-2.95
из прошлого века, и хорошо известно, что он глючит, не умеет оптимизировать и не соответствует стандартам я>. Текущая версия GCC — 4.9.2 с октября 2014 года; вы можете скомпилировать его как кросс-компилятор. Использование GCC 2.95 является ошибкой. - person Basile Starynkevitch   schedule 13.12.2014