首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >链接jsoncpp (libjson)

链接jsoncpp (libjson)
EN

Stack Overflow用户
提问于 2013-06-24 13:35:38
回答 2查看 2.7K关注 0票数 1

我正在尝试使用cmake将jsoncpp (json)与一个c++项目链接起来。它在一台计算机上运行得非常好,但在另一台计算机上(配置基本相同),我在执行我的应用程序时会出错:

dyld:库未加载: buildscons/linux-gcc-4.2.1/src/lib_json/libjson_linux-gcc-4.2.1_libmt.dylib 引用自:可执行文件的路径 原因:找不到图像

知道是什么导致了这一切吗?我甚至不明白它为什么要看@ buildscons/linux-gcc-4.2.1/src/lib_json/libjson_linux-gcc-4.2.1_libmt.dylib,因为我将jsoncpp放在usr/lib/中,并将名称改为libjsoncpp和cmake,找到正确的路径/库。

我还在两台电脑上用完全相同的方式构建了jsoncpp。

EN

回答 2

Stack Overflow用户

发布于 2013-09-11 11:08:11

我也有同样的问题。如果您运行tool -L libjson_linux-gcc-4.2.1_libmt.dylib,您可以看到libjson...的一些奇怪的相对地址。我想如果您复制了这个目录结构,它会工作,但这是一个糟糕的解决方案。

相反,我使用了.a (libjson_linux-gcc-4.2.1_libmt.a),并将其与二进制文件链接起来。在XCode中,我简单地在Build Settings -> Linking -> Other Linker Flags下为自己的.a添加了绝对路径。对我来说,是/Users/martin/Downloads/jsoncpp-src-0.5.0/libs/linux-gcc-4.2.1/libjson_linux-gcc-4.2.1_libmt.a,仅此而已。

当然,我不知道你的用例,也许你真的需要动态链接它。

票数 0
EN

Stack Overflow用户

发布于 2017-05-18 15:02:50

编辑:我现在明白了,你指的是利布森,而不是利布松 (它们不同了!)

在你的titel中,你提到了jsoncpp,这就是这个答案的意义所在。但也许这对那些被情报搞糊涂的人也有帮助。

您可以‘合并’jsoncpp。

从jsoncpp源dir运行python amalgamate.py,它创建:

代码语言:javascript
复制
dist/jsoncpp.cpp
dist/json/json.h
dist/json/json-forwards.h

现在,您必须编译 jsoncpp.cpp 一度,并只编译针对链接,即生成的jsoncpp.o

  1. g++ -o jsoncpp.o -c jsoncpp.cpp (仅一次)
  2. g++ -o executable jsoncpp.o main.cpp (每次)

如果您有错误,您可能必须在包含#define JSON_IS_AMALGAMATION之前进行json/json.h,但是.

..。我试过了,它对我有用。(没有#define JSON_IS_AMALGAMATION,即)

使用的代码:

代码语言:javascript
复制
#include "json/json.h"
#include "json/json-forwards.h"

int main(int argc, char *argv[])
{
    Json::Reader    reader;
    Json::Value     value;
    if (!reader.parse("{\"hello\":\"world\"}", value, false))
    {
        std::cerr << "ERROR: Couldn't parse Json: " << reader.getFormattedErrorMessages() << std::endl;
        return -1;
    }
    std::cout << value.toStyledString() << std::endl;
    return 0;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17276853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档