Проблема со связью с библиотекой C в XCode - файл был создан для неподдерживаемого формата файла, который не связан с архитектурой - PullRequest
0 голосов
/ 27 апреля 2011

Итак, я пытаюсь использовать библиотеку C в проекте Objective-C для iPhone.Я получаю сообщение об ошибке компоновщика при попытке компиляции: файл

создан для неподдерживаемого формата файла, который не связан с архитектурой (i386)

Я создаю этот файлбиблиотека, использующая стандарт

. / configure make

На какой архитектуре я должен это построить для работы с проектом iPhone?Спасибо! Обновление

Я обновил Makefile и добавил -arch i386 в строку CFLAGS.Когда я запускаю make I сейчас, появляется следующее сообщение об ошибке:

Компиляция spammer.c gcc -o spammer spammer.o ../src/libircclient.a -lpthread ld: warning: in ../src/libircclient.a, файл был создан для неподдерживаемого формата файла, который не связан с архитектурой (x86_64)

Означает ли это, что мне нужно где-то редактировать другой make-файл ??

Ответы [ 2 ]

1 голос
/ 27 апреля 2011

Скорее всего, он был построен для x86_64, который используется по умолчанию. Вам нужно изменить библиотеку, чтобы она была скомпилирована для i386 и соответствовала вашему приложению.

Обычно вы делаете это, устанавливая переменную среды CFLAGS в -arch i386 перед запуском configure. Убедитесь, что сначала сделали «make dist clean». Если это не сработает, вы также можете вручную отредактировать Makefile после того, как configure его создаст, и добавьте -arch i386 в строку CFLAGS =.

0 голосов
/ 20 декабря 2012

Эта ошибка:

Compiling spammer.c gcc -o spammer spammer.o ../src/libircclient.a -lpthread ld: warning: in ../src/libircclient.a, file was built for unsupported file format which is not the architecture being linked (x86_64)

Приходит при сборке примеров, и это не совсем то, что вам нужно, верно?

Сделайте make в папке SRC и соберите с помощью -arch i386 или -Арка arvm7 будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...