首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包含jsoncpp库时出错。

包含jsoncpp库时出错。
EN

Stack Overflow用户
提问于 2017-11-06 15:10:13
回答 1查看 924关注 0票数 0

我正在尝试用C++解析JSON。我的Makefile看起来如下:

代码语言:javascript
复制
LDFLAGS = -L/home/ting/Temp/code/jsoncpp/libs/linux-gcc-5.4.0/ ./jsoncpp/libs/linux-gcc-5.4.0/libjson.a ./jsoncpp/libs/linux-gcc-5.4.0/libjson.so
INC = -I/home/ting/Temp/code/jsoncpp/include/json

CC=g++
CFLAGS = -std=c++11


main: main.cpp
    $(CC) -o $@ $(LDFLAGS) $(INC) $^ ${CFLAGS}

当我简单地使用#include "json.h"时,编译器会给出大量的错误。我刚选了一些:

代码语言:javascript
复制
/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h:44:19: error: 
missing binary operator before token "("
 #if __GLIBC_PREREQ(2,15) && defined(_GNU_SOURCE)
               ^
In file included from /usr/include/c++/5/cwchar:44:0,
             from /usr/include/c++/5/bits/postypes.h:40,
             from /usr/include/c++/5/iosfwd:40,
             from /usr/include/c++/5/ios:38,
             from /usr/include/c++/5/istream:38,
             from /usr/include/c++/5/fstream:38,
             from main.cpp:1:
/usr/include/wchar.h:74:43: error: missing binary operator before token "("

它看起来没有任何错误的libs。但是,只有当我链接到jsoncpp库并在Makefile中添加其包含dir时,才会出现此问题。

我很困惑,发生什么事了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-06 16:06:18

你的jsoncpp必须是这样的:

代码语言:javascript
复制
#include <json/json.h>

您的包含路径必须以包含dir结束,这样:

代码语言:javascript
复制
INC = -I/home/ting/Temp/code/jsoncpp/include

如果省略包含中的json,并将其添加到INC变量中,编译器最终将从json目录中选择一个.h,而不是所需的glibc的ures.h,后者会产生类似于您发布的错误(请注意,glibc中的ures.h定义了__GLIBC_PREREQ宏)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47140028

复制
相关文章

相似问题

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