#c #macos
#c #macos
Вопрос:
Итак, у меня есть makefile, и когда я его запускаю, я получаю следующее:
gcc -Wall -g -L. -DSTUDENT_MODE=1 -o lab2 lab2.c lab2_funcs.c advfuncs.o -lm
ld: warning: ignoring file advfuncs.o, file was built for unsupported file format ( 0x7F 0x45 0x4C 0x46 0x02 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 ) which is not the architecture being linked (x86_64): advfuncs.o
Undefined symbols for architecture x86_64:
"__array", referenced from:
_main in lab2-bdc822.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [all] Error 1
Файл makefile выглядит следующим образом:
PROGRAM=lab2
SOURCES=lab2.c lab2_funcs.c
CFLAGS=-Wall -g -L.
all: $(SOURCES)
gcc $(CFLAGS) -DSTUDENT_MODE=1 -o $(PROGRAM) $(SOURCES) advfuncs.o -lm
#teacher: $(SOURCES)
# gcc $(CFLAGS) -DSTUDENT_MODE=0 -c advfuncs.c
# gcc $(CFLAGS) -o $(PROGRAM) $(SOURCES) advfuncs.o -lm
clean:
rm -f lab2 lab2_funcs.o
Я попытался запустить это в eclipse на своем компьютере с Windows, но я получаю другие ошибки. Я даже получил полную скомпилированную версию проекта от учителя, но, похоже, я тоже не могу ее запустить, я просто получаю сообщение об ошибке, что я не могу использовать этот двоичный файл.
Комментарии:
1. Я полагаю, у вас нет источника для
advfuncs.o
файла? Тогда мы действительно ничего не можем сделать, чтобы помочь вам. Если ваш учитель не предоставляет объектный файл для вашей системы, вам нужно придумать какой-то другой способ создания вашей программы (возможно, виртуальная машина?).2. Похоже
advfuncs.o
, он не был скомпилирован для вашей платформы. У вас есть исходный код для этого?3. Мои экстрасенсорные способности говорят мне, что ваш учитель дал вам advfuncs.o в виде предварительно скомпилированного файла Linux .
__array
Там определена переменная. Попросите своего учителя передать ваш исходный код advfuncs или предварительно скомпилировать сборку mac для вас.4. У меня есть файлы advfuncs.o. да, я получил несколько, я перепробовал их все, и ни один из них не сработал. Я попрошу его скомпилировать его для Mac, я думаю
5. Что вы подразумеваете под «у меня есть несколько»? Как эти файлы были помечены для конкретной платформы?