Установить библиотеку 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 и собрать его. это закончило тем, что решило проблему.

Вот как я решил проблему:

  1. скачать libjson из sourceforge
  2. распакуйте его.
      -
  3. переместите папку _internal, libjson.h и JSONOptions.h в папку проекта xcode
  4. добавьте эти файлы в ваш проект xcode
  5. удалите файлы тестового набора из этого проекта, поскольку они вам не нужны
  6. постройте свой главный, чтобы проверить это, и вы должны быть хорошими, чтобы пойти.

В навигаторе проекта (слева от 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 и добавите файлы в проект, а не скомпилируете его из командной строки.

Другие вопросы по тегам