Не могу скомпилировать проект на c, который я получил от своего учителя. (mac)

#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. Что вы подразумеваете под «у меня есть несколько»? Как эти файлы были помечены для конкретной платформы?