我是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
有没有人对我可以采取的步骤提出任何建议?谢谢你的时间。
答案 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项目中并构建它。它最终解决了这个问题。
这就是我如何解决这个问题: