【发布时间】:2013-11-19 00:08:00
【问题描述】:
对于这个可能很愚蠢的问题,我提前道歉,但在过去的几天里,我在互联网上的任何地方都找不到这个问题的答案。
我正在尝试在 xcode 中创建一个 c++ 项目,并且我想使用 libjson 来解析我的 json 工作。不幸的是,我一直无法让环境加载它。我尝试了指示并查看了make文件。我运行 make install 并尝试在 make 文件中到处点击各种开关。我基本上尝试遵循此处建议的指示: How to create a libJSON library?
当我尝试运行 make 文件时,我一直遇到这个问题,我无法在网上找到解决该问题的解决方案:
/usr/bin/ranlib: file: libjson.a(JSONAllocator.o) has no symbols
/usr/bin/ranlib: file: libjson.a(JSONDebug.o) has no symbols
/usr/bin/ranlib: file: libjson.a(JSONMemory.o) has no symbols
/usr/bin/ranlib: file: libjson.a(JSONNode_Mutex.o) has no symbols
/usr/bin/ranlib: file: libjson.a(JSONPreparse.o) has no symbols
/usr/bin/ranlib: file: libjson.a(libjson.o) has no symbols
没有符号是什么意思?不然怎么编译?
有人建议直接添加库,但我不知道如何完成并不断收到编译错误。
我尝试安装 macport 并成功安装了 jsoncpp,但找不到 libjson 作为端口。我想最终使用 libjson 的 c++ 样式接口。
我正在尝试让它在 XCODE 上工作
编辑:这是“make install”的输出:
============================================================
libjson version: 7.6.1 target: OS: Darwin
============================================================
Install header files
mkdir -p /Users/aps/Desktop/libj/include/libjson
cp -f ./*.h /Users/aps/Desktop/libj/include/libjson
mkdir -p /Users/aps/Desktop/libj/include/libjson/_internal/Source
cp -f ./_internal/Source/*.h /Users/aps/Desktop/libj/include/libjson/_internal/Source
cp -r ./_internal/Source/JSONDefs /Users/aps/Desktop/libj/include/libjson/_internal/Source
chmod -R a+r /Users/aps/Desktop/libj/include/libjson
find /Users/aps/Desktop/libj/include/libjson -type d -exec chmod a+x {} \;
cp -rv _internal/Source/Dependencies/ /Users/aps/Desktop/libj/include/libjson/_internal/Source
_internal/Source/Dependencies/ -> /Users/aps/Desktop/libj/include/libjson/_internal/Source
_internal/Source/Dependencies//libbase64++ -> /Users/aps/Desktop/libj/include/libjson/_internal/Source/libbase64++
_internal/Source/Dependencies//libbase64++/libbase64++.h -> /Users/aps/Desktop/libj/include/libjson/_internal/Source/libbase64++/libbase64++.h
_internal/Source/Dependencies//mempool++ -> /Users/aps/Desktop/libj/include/libjson/_internal/Source/mempool++
_internal/Source/Dependencies//mempool++/mempool.h -> /Users/aps/Desktop/libj/include/libjson/_internal/Source/mempool++/mempool.h
Install header files: Done.
mkdir -p Objects_static
Archive
cd Objects_static ; \
ar -cvq libjson.a internalJSONNode.o JSONAllocator.o JSONChildren.o JSONDebug.o JSONIterators.o JSONMemory.o JSONNode.o JSONNode_Mutex.o JSONPreparse.o JSONStream.o JSONValidator.o JSONWorker.o JSONWriter.o libjson.o ; \
mv -f libjson.a ../
q - internalJSONNode.o
q - JSONAllocator.o
q - JSONChildren.o
q - JSONDebug.o
q - JSONIterators.o
q - JSONMemory.o
q - JSONNode.o
q - JSONNode_Mutex.o
q - JSONPreparse.o
q - JSONStream.o
q - JSONValidator.o
q - JSONWorker.o
q - JSONWriter.o
q - libjson.o
Archive: Done
Install static library
cp -f ./libjson.a /Users/aps/Desktop/libj/lib
Install static library: Done.
【问题讨论】:
-
例如看到
libfoo.a(bar.o) has no symbols还不错,但消息libjson.a(libjson.o) has no symbols让我很担心——如果我是正确的,libjson.o 是一个重要的目标文件,所以它应该是非空的。您可以更新问题以包含 make 的输出吗?这可以让人们对此有所了解。 -
已添加。感谢您查看@Shigerello
-
您是否将 libjson.a 库添加到您在 xcode 中的项目中?
-
嗨@cube,我尝试了多次,但没有成功。最后,我尝试将整个源项目复制到我的 xcode 项目中并构建它。它最终解决了问题。