Как да коригирам проблема със свързването на недефинирани символи за архитектура i386: _main"?

Опитвам се да използвам KeyChainitemwrapper, предоставен от apple. Моят проект използва ARC, но изключих ARC на KeyChainitemwrapper.m. Свързах рамката „security.framework“ с моя проект.

Получавам този проблем със свързването:

Недефинирани символи за архитектура i386: "_main", посочено от: начало в crt1.10.6.o ld: символ(и) не са намерени за архитектура i386 clang: грешка: командата за свързване е неуспешна с изходен код 1 (използвайте -v, за да видите извикването)

Нов съм в разработката на ios, но предполагам, че проблемът е свързан с факта, че симулаторът се опитва да компилира моя източник, насочен към i386, а не към arm?? близо ли съм

Както и да е... изглежда, че тази обвивка е доста популярна, така че се чудех дали някой, който може да е запознат с този проблем, може да ми помогне.

Благодаря


person Nick    schedule 29.01.2012    source източник


Отговори (3)


Това предполага, че не компилираш main.m във вашия проект. Уверете се в следното:

  • Имате main.m във вашия проект
  • В него има функция, наречена main()
  • Вие всъщност го компилирате. Отидете на вашия проект, след това Build Phases, след това Compile Sources. Уверете се, че main.m е в списъка.
person Rob Napier    schedule 29.01.2012
comment
Благодаря за отговора. Моят проект не съдържа файл, наречен main.m. Също така не мога да намеря препратка към „основен“. - person Nick; 29.01.2012
comment
Ето. Нямате main(), както показва компилаторът. Вероятно трябва да възстановите проекта си от шаблон на проект. - person Rob Napier; 29.01.2012
comment
Започнах с шаблон на проект. Може би съм деактивирал изграждането на нещо?? - person Nick; 29.01.2012
comment
По погрешка изтрих групата „поддържаща ..“, която наистина съдържаше main. опа. Благодаря много! - person Nick; 29.01.2012
comment
ако някой друг се чуди, този файл main.m е скрит по подразбиране, трябва да използвате Finder, за да го намерите, да създадете нов проект, да го копирате в стария проект и да го включите в Компилиране на източници в раздела Build Phases - person SAFAD; 11.08.2013

вашият код ще бъде компилиран за i386 архитектура, когато използвате симулатора. Ако използвате истинско устройство, вашият код ще бъде компилиран за arm.

Изтеглих този проект, има файл main.c в групата "други източници".

person Community    schedule 29.01.2012

Премахването на препратките към main.ce във вашия проект решава този проблем за мен

person Raphael Rivas    schedule 04.02.2013