在xcode上安装C ++ json库

时间:2013-11-11 00:35:05

标签: c++ json xcode jsoncpp libjson

我是xcode和c ++编程的新手,所以如果我错了,请告诉我。基本上,我想创建一个C ++项目,需要一个库来处理发出和接收json调用。 (这最终将整合为iOs和Android应用程序的'引擎'。)我想使用xcode创建这个,我尝试安装libjson但无法让它识别。然后我尝试使用JsonCpp并按照说明进行操作。

1)我下载了tar.gz 2)我下载了scons python程序并在jsoncpp文件夹中运行了相应的命令(类似'python scons.py platform = linux-gcc check')

这创建了.a和.dylib文件

接下来,我尝试将文件移动到项目中,并在项目设置中的“构建阶段”选项卡的“Link Binary With Libraries”部分中将其链接到xcode中。

我使用include语句将代码链接到我的文件:     #include“lib / jsoncpp / json.h”

这导致以下错误:

架构x86_64的未定义符号:   “Json :: Reader :: parse(std :: __ 1 :: basic_string,std :: __ 1 :: allocator> const&,Json :: Value&,bool)”,引自:       jsonParser.o中的jsonParser :: parseLogin(std :: __ 1 :: basic_string,std :: __ 1 :: allocator>&,std :: __ 1 :: basic_string,std :: __ 1 :: allocator>&) ld:找不到架构x86_64的符号

(null):“Json :: Reader :: parse(std :: __ 1 :: basic_string,std :: __ 1 :: allocator&gt; const&amp;,Json :: Value&amp;,bool)”,引自:< / p>

我所要做的就是设置这个库,但是过去一天我一直在努力寻找解决方案。

对于libjson库,我尝试按照此处的说明进行操作,但遇到类似问题: Cannot Install libjson in c++ Embedding in XCode 4 Project

有没有人对我可以采取的步骤提出任何建议?谢谢你的时间。

2 个答案:

答案 0 :(得分:2)

在项目导航器(XCode的左侧)中,单击项目上方。然后:

  

Build Phases -> Link binary with libraries

您可以在此处添加将链接到您的应用程序的所有库和/或框架。打开此页面,然后拖放库区域内的库......就是这样!不是秘密!

如果不起作用。你可能是一个错误的库。尝试lipo -info library检查库架构是否与您尝试使用的相同(在这种情况下为x86_64)。

如果仍然无效。您可能与C ++不兼容。 libstdc ++和libc ++在构建中的任何混合都会带来麻烦。使用clang构建的所有C ++ 11代码都应该设置一个环境变量:CXX=clang++ -std=c++11 -stdlib=libc++,或者添加CXX="clang++ -std=c++11 -stdlib=libc++"作为配置参数。)。如果您通过命令行编译了libjson,请再次检查它。但是,对于libJSON,如果你打开一个新的XCode项目并将文件添加到项目而不是通过命令行编译它会容易得多。

答案 1 :(得分:2)

最后,我尝试将整个源项目复制到我的xcode项目中并构建它。它最终解决了这个问题。

这就是我如何解决这个问题:

  1. 从sourceforge下载libjson
  2. 解压缩它。
      -
  3. 将_internal文件夹,libjson.h和JSONOptions.h移动到 xcode项目文件夹
  4. 将这些文件添加到您的xcode项目
  5. 从此项目中删除测试套件文件,因为您不需要它们
  6. 建立你的主要测试它,你应该很高兴。