Установить библиотеку C++ json на xcode
Я очень плохо знаком с программированием на xcode и C++, поэтому, пожалуйста, дайте мне знать, если я поступаю неправильно. По сути, я хочу создать проект на C++, для которого требуется библиотека для выполнения и приема вызовов json. (это в конечном итоге будет интегрировано как "движок" приложения для iOS и Android.) Я хочу использовать xcode для его создания, и я попытался установить libjson, но не смог его распознать. Затем я попытался использовать JsonCpp и следовал инструкции.
1) Я скачал tar.gz 2) Я скачал программу Python scons и в папку jsoncpp и запустил соответствующую команду (что-то вроде "python scons.py platform=linux-gcc check")
Это создало.a и.dylib файл
Затем я попытался переместить файлы в проект и связать его в xcode из раздела "Связать двоичные файлы с библиотеками" на вкладке "Фазы сборки" в настройках проекта.
Я связал код с моим файлом с помощью оператора include: #include "lib/jsoncpp/json.h"
Это привело к следующей ошибке:
Неопределенные символы для архитектуры x86_64: "Json::Reader::parse(std::__1::basic_string, std::__1::allocator > const&, Json::Value&, bool)", ссылка на которую указана в: jsonParser::parseLogin(std::__1::basic_string, std::__1::allocator >&, std::__1::basic_string, std::__1::allocator >&) в jsonParser.o ld: символы не найдены для архитектуры x86_64
(null): "Json:: Reader:: parse (std:: __ 1:: basic_string, std:: __ 1:: allocator> const &, Json:: Value &, bool)", на который ссылаются из:
Все, что я пытаюсь сделать, это настроить эту библиотеку, но она мешала мне работать над моим кодом в течение последнего дня в поисках решения.
Для библиотеки libjson я попытался выполнить следующие указания, но со схожими проблемами: Невозможно установить libjson в C++ Встраивание в проект XCode 4
У кого-нибудь есть какие-либо советы относительно шагов, которые я могу предпринять, чтобы настроить это? Спасибо за ваше время.
2 ответа
В конце я попытался просто скопировать весь исходный проект в свой проект xcode и собрать его. это закончило тем, что решило проблему.
Вот как я решил проблему:
- скачать libjson из sourceforge
- распакуйте его.
- -
- переместите папку _internal, libjson.h и JSONOptions.h в папку проекта xcode
- добавьте эти файлы в ваш проект xcode
- удалите файлы тестового набора из этого проекта, поскольку они вам не нужны
- постройте свой главный, чтобы проверить это, и вы должны быть хорошими, чтобы пойти.
В навигаторе проекта (слева от XCode) щелкните над своим проектом. Затем:
Build Phases -> Link binary with libraries
Здесь вы добавляете все библиотеки и / или фреймворки, которые будут связаны с вашим приложением. Оставьте эту страницу открытой, затем перетащите библиотеки в область библиотек... и все! не секрет!
Если это не сработает. Вы, вероятно, с неправильной библиотекой. Пытаться lipo -info library
проверить, является ли архитектура библиотеки той же, которую вы пытаетесь использовать (в данном случае x86_64).
Если это все еще не работает. Вы, вероятно, с несовместимостью C++. Любое смешивание libstdC++ и libC++ в сборках вызовет проблемы. Весь код C++11, созданный с помощью clang, должен устанавливать переменную окружения: CXX=clang++ -std=c++11 -stdlib=libc++
или добавить CXX="clang++ -std=c++11 -stdlib=libc++"
в качестве аргумента для настройки.). Если вы скомпилировали libjson через командную строку, проверьте это снова. Но для libJSON гораздо проще, если вы откроете новый проект XCode и добавите файлы в проект, а не скомпилируете его из командной строки.