linux下使用Jsoncpp

原创 2015年07月11日 09:32:23

linux下使用Jsoncpp源码与项目代码一起编译时,会出现很多报错,诸如:

error: missing binary operator before token "("

/usr/include/wchar.h:104:1: error: ‘__BEGIN_NAMESPACE_C99’ does not name a type
/usr/include/wchar.h:107:1: error: ‘__END_NAMESPACE_C99’ does not name a type
/usr/include/wchar.h:135:1: error: ‘__END_NAMESPACE_STD’ does not name a type
/usr/include/wchar.h:149:6: error: expected initializer before ‘__THROW’
/usr/include/wchar.h:153:39: error: expected initializer before ‘__THROW’
/usr/include/wchar.h:157:6: error: expected initializer before ‘__THROW’
/usr/include/wchar.h:161:6: error: expected initializer before ‘__THROW’

/usr/include/c++/4.6/cwchar:143:11: error: ‘::btowc’ has not been declared
/usr/include/c++/4.6/cwchar:144:11: error: ‘::fgetwc’ has not been declared
/usr/include/c++/4.6/cwchar:148:11: error: ‘::fwide’ has not been declared
/usr/include/c++/4.6/cwchar:149:11: error: ‘::fwprintf’ has not been declared
/usr/include/c++/4.6/cwchar:150:11: error: ‘::fwscanf’ has not been declared

/usr/include/c++/4.6/cwchar:215:55: error: invalid conversion from ‘const wchar_t*’ to ‘wchar_t*’ [-fpermissive]
/usr/include/c++/4.6/cwchar:214:3: error:   initializing argument 1 of ‘wchar_t* std::wcschr(wchar_t*, wchar_t)’ [-fpermissive]

/usr/include/locale.h: At global scope:
/usr/include/locale.h:32:1: error: ‘__BEGIN_DECLS’ does not name a type
/usr/include/locale.h:125:65: error: expected initializer before ‘__THROW’
/usr/include/locale.h:128:40: error: expected initializer before ‘__THROW’
/usr/include/locale.h:130:1: error: ‘__END_NAMESPACE_STD’ does not name a type

......

产生原因:jsoncpp中有一个features.h文件,在/usr/include下也有一个同名的文件,所以就出现文件依赖顺序等问题,一旦搞混,就报了一堆错

解决办法:

网上看了下解决办法,有的是把json库放在/usr/local/include/目录下,然后再#include "json/json.h"。

当然最简单的办法就是把jsoncpp的features.h重命名,然后json.h与reader.h要引用它,在相应的位置换成新的文件名字就ok了

linux 链接jsoncpp库时候, 编译出错问题

在linux下面使用Jsoncpp,在编译时添加了头文件搜索路径-Ixxxx/json ,导致很多错误,如下: In file included from /usr/include/x86_64-l...
  • yubing841026
  • yubing841026
  • 2017年08月08日 16:10
  • 435

Jsoncpp使用详解以及链接问题解决

Jsoncpp使用详解以及链接问题解决
  • chenqiai0
  • chenqiai0
  • 2015年08月01日 16:18
  • 4856

linux下jsoncpp的编译和测试使用

1、预备条件: JsonCPP类库http://sourceforge.net/projects/jsoncpp/?source=dlp SCONS编译器http://sourceforge.net/...
  • ljp1919
  • ljp1919
  • 2015年09月09日 21:25
  • 4370

linux下jsoncpp编译与使用

json的使用场合非常多,无论java还是c++,java语言基本首选fastjson库,使用maven项目管理工具,分分钟搞定。而c++语言使用json就要麻烦一些,很多json库都需要自己编译,并...
  • u013085897
  • u013085897
  • 2017年02月03日 20:06
  • 3539

jsoncpp在linux编译

jsoncpp是一个c++封装的json包,跨平台支持windows、linux、unix等多系统,macOS据说也支持。 在windows下面使用比较简单,直接往vc里面添加项目就可以了。linu...
  • yujun_huoxu
  • yujun_huoxu
  • 2012年05月30日 14:17
  • 7368

jsoncpp Linux下编译及使用

首先 安装scons         apt-get install scons 进入源码目录             cd jsoncpp-master/      源码包下载 用scons编译  ...
  • SuGuolin
  • SuGuolin
  • 2016年11月12日 12:05
  • 594

linux jsoncpp 安装

  • 2015年07月20日 17:09
  • 927KB
  • 下载

linux jsoncpp 应用

包括字符串转json体,json存配置文件,p
  • jjy163
  • jjy163
  • 2014年04月09日 09:06
  • 575

linux下安装jsoncpp

我刚刚开始从windows MFC下的开发转的LINUX下的C++开发。在写这篇文章之前我三次安装jsoncpp,每一次安装都犯不同的错误。为了我能够在下一次安装时不再犯错误。特写此文!JSONCPP...
  • Challenge_C_PlusPlus
  • Challenge_C_PlusPlus
  • 2012年05月15日 15:15
  • 9668

前置声明与C++头文件互相包含导致的error: 'xxx' does not name a type问题

在一个源文件中,要声明或定义一个类的指针时,必须在使用前声明或定义该类,因此下面的代码会报错:class A { public: B *b; };class B { public: A...
  • imred
  • imred
  • 2017年01月17日 15:39
  • 5069
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux下使用Jsoncpp
举报原因:
原因补充:

(最多只允许输入30个字)