Ответ 1
Проблема, с которой вы столкнулись, похоже, связана с стандартной библиотекой С++.
Собственно, всякий раз, когда вы видите ошибки компоновщика в отношении со стандартными библиотечными объектами (например, std::string
), вы должны проверить настройки проекта во всех связанных библиотеках и самом проекте-проекте. Они обычно должны соответствовать!
Оригинальный ScanTest (который создает ZXingWidget в качестве подпроекта) использует следующие параметры, и они должны соответствовать вашим настройкам сборки приложения, если вы используете библиотеку как есть.
Чтобы убедиться, я создал совершенно новый проект, используя Xcode 4.5. Этот проект использует ZXingWidget как готовую библиотеку, но не как подпроект - мне не нравятся подпроекты для вещей, которые не являются моими собственными, хотя эта специальность не влияет на результаты.
Важная настройка Стандартная библиотека С++ - убедитесь, что она установлена в положение Компилятор по умолчанию
Небольшое пояснение
На самом деле вам не нужно использовать Стандартную библиотеку С++, вы также можете использовать стандартную библиотеку LLVM С++ с поддержкой С++ 11. Но вам придется использовать эту ту же библиотеку во всех проектах, подпроектах и библиотеках, которые связаны с вашим проектом. Поэтому, если вы настаиваете на использовании более поздней версии этой библиотеки (поддержка С++ 11), вам также придется создавать библиотеку ZXing с этими настройками.
И последнее, но не менее важное: убедитесь, что параметры Архитектуры и Действительная архитектура соответствуют всем проектам и подпроектам (исправление общей проблемы с компоновщиком armv7s
).
Во-первых, убедитесь, что для параметра Архитектуры установлено значение armv7
armv7s
во всех проектах. Затем также отредактируйте настройки проекта для всех проектов в Действительной архитектуре armv7s
armv7
.