Связывание с расширенной библиотекой в ​​приложении какао

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

Я подключился к библиотеке Boost из приложения C ++ в XCode, и она отлично работала. Однако в приложении Какао, над которым я сейчас работаю, то же самое для ссылки на библиотеку Boost не работает и вызывает ошибку:

ld: warning: in /path/to/project/build/Debug-iphonesimulator/libboost_thread.dylib, file was built for unsupported file format which is not the architecture being linked (i386)

Похоже, это связано с тем, что приложения C ++ используют архитектуру x86_64, которая работает с библиотекой Boost, тогда как приложения Cocoa используют архитектуру i386, которая, похоже, не работает.

Если решение состоит в том, что я должен каким-то образом установить библиотеку Boost, чтобы она работала с архитектурой i386, как я могу это сделать? Или есть другое, лучшее решение?

Заранее спасибо.


person user1295558    schedule 27.03.2012    source источник


Ответы (1)


Похоже, вам нужно создать свою библиотеку Boost для ОБЕИХ i386 и x86_64.

Вот ссылка на немного более старый вопрос, в котором говорится о компиляции Boost как статического универсального ( 32-битная + 64-битная) библиотека.

И ваше приложение Cocoa / Objective C, над которым вы работаете, также должно быть скомпилировано как универсальное (как для i386, так и для x86_64) приложение.

person Michael Dautermann    schedule 27.03.2012
comment
А как насчет arm для развертывания на реальном устройстве? - person trojanfoe; 27.03.2012
comment
stackoverflow.com/questions/1577838 / есть ответы о том, как построить для реального устройства. - person Michael Dautermann; 27.03.2012
comment
Спасибо - попробую скомпилировать Boost как статическую универсальную библиотеку. Но как мне подойти к компиляции приложения Cocoa / Objective C как универсального приложения? Я с этим раньше не сталкивался. - person user1295558; 27.03.2012
comment
Это так же просто, как убедиться, что ваши архитектуры и допустимые архитектуры в полях в настройках проекта установлены как i386, так и x86_64. Чтобы явно показать вам, как это установить, вы можете немного погуглить. Я также нашел связанный вопрос что говорит об этом. О, и этот комментарий предполагает, что вы говорили о приложении для Macintosh, а не о приложении для iPhone / iOS. Надеюсь это поможет! - person Michael Dautermann; 28.03.2012
comment
Спасибо - разобрались. - person user1295558; 28.03.2012