Я очень плохо знаком с программированием на 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 «lib / jsoncpp / json.h»
Это привело к следующей ошибке:
Неопределенные символы для архитектуры x86_64:
«Json :: Reader :: parse (std :: __ 1 :: basic_string, std :: __ 1 :: allocator> const&, Json :: Значение&, 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 :: Значение&, bool) «, ссылка от:
Все, что я пытаюсь сделать, это настроить эту библиотеку, но она мешала мне работать над моим кодом в течение последнего дня в поисках решения.
Для библиотеки libjson я попытался следовать указаниям здесь, но со схожими проблемами:
Не удается установить libjson в c ++ Встраивание в проект XCode 4
У кого-нибудь есть какие-либо советы относительно шагов, которые я могу предпринять, чтобы настроить это? Спасибо за ваше время.
В навигаторе проекта (слева от 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 и добавите файлы в проект, а не скомпилируете его из командной строки.
В конце я попытался просто скопировать весь исходный проект в свой проект xcode и собрать его. это закончило тем, что решило проблему.
Вот как я решил проблему: