У меня есть файл сборки на OSX Lion
VPATH = src include
CFLAGS ="-I include -std=gnu99"
hello: hello.o
gcc $^ -o $@
hello.o: hello.h hello.c
gcc $(CFLAGS) -c $< -o $@
Но когда я пытаюсь запустить этот файл сборки, я получаю следующую ошибку
ld: warning: ignoring file hello.o, file was built for unsupported file format which is not the architecture being linked (x86_64)
Undefined symbols for architecture x86_64:
"_main", referenced from:
start in crt1.10.6.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
Я пытался использовать флаг -arch x86_64
, но все равно получаю ту же ошибку.
Выполнение команды arch
дает :i386
.
uname -a
говорит мне:Darwin Kernel Version 11.3.0: Thu Jan 12 18:47:41 PST 2012; root:xnu-1699.24.23~1/RELEASE_X86_64 x86_64
Я также пытался добавить переключатель -march=x86-64
, как описано в этом ответе файл был создан для i386, который не связан с архитектурой (x86 _64 )при компиляции OpenCV2.2 для iOS 4.2 на Mac OSX 10.6 , но у меня это не сработало.
Вывод из командной строки::
gcc -I include -std=gnu99 -m64 -c include/hello.h -o hello.o
gcc -I include -std=gnu99 -m64 hello.o -o hello
ld: warning: ignoring file hello.o, file was built for unsupported file format which is not the architecture being linked (x86_64)
Undefined symbols for architecture x86_64:
"_main", referenced from:
start in crt1.10.6.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make: *** [hello] Error 1