0

我根本无法弄清楚如何将 libjson 安装为我的 c++ 项目的一部分。我在网上经历了一切。我将其嵌入到我的项目中。

首先我试过这个

  1. 将 libjson 目录移到我的项目中
  2. 注释掉:#define JSON_LIBRARY
  3. 冉使
  4. 添加了#include "libjson/libjson.h"

项目构建正常..

在我的 main.cpp 文件中添加了以下内容:

JSONNode n = libjson::parse(json);

构建失败并出现两个错误:

Undefined symbols for architecture x86_64:
  "JSONWorker::parse(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
      libjson::parse(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in main.o
  "internalJSONNode::deleteInternal(internalJSONNode*)", referenced from:
      JSONNode::decRef()     in main.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

我也尝试过 make && sudo make install 并手动编译项目。相同的错误:

g++ main.cpp -o junk -I/usr/include/libjson -ljson

我也试过:

SHARED=1 make && sudo SHARED=1 prefix=/usr/local make install

最后,我尝试将 libjson 文件复制到我的项目中,并且也得到了相同的错误。

请有人可以告诉我我做错了什么吗?我们使用的是 rapidjson,但更喜欢 libjson 的外观。主要问题是我们无法安装它!

使用的其他参考资料:

4

1 回答 1

1

我正在回答我自己的问题,因为这让我很头疼。这是我为使其正常工作所做的工作。

  1. 在 JSONOptions.h 中注释掉 #define JSON_LIBRARY
  2. 运行制作
  3. 将 libjson.a 添加到您的项目中
  4. 将 libjson.h 添加到您的项目中
  5. 将 JSONOptions.h 添加到您的项目中
  6. 将#include "libjson.h" 添加到您的主项目文件中

瞧。希望你不要像我在这件事上浪费那么多时间...

于 2013-07-06T21:41:06.543 回答