1

我对 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 文件

接下来,我尝试将文件移动到项目中,并从项目设置中“构建阶段”选项卡的“使用库链接二进制文件”部分将其链接到 xcode 中。

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

这导致了以下错误:

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

(null): "Json::Reader::parse(std::__1::basic_string, std::__1::allocator > const&, Json::Value&, bool)",引用自:

我想要做的就是设置这个库,但它一直让我无法在过去的一天中处理我的代码以寻找解决方案。

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

有人对我可以采取的设置步骤有什么建议吗?感谢您的时间。

4

2 回答 2

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 项目并将文件添加到项目中而不是通过命令行编译它,会容易得多。

于 2013-11-11T02:02:55.563 回答
2

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

这就是我解决问题的方法:

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