[英]Error while including the jsoncpp lib
我正在嘗試使用C ++解析JSON。 我的Makefile如下所示:
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"
,編譯器給了我很多錯誤。 我只是挑選了其中一些:
/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 "("
庫看起來沒有任何錯誤。 但是,僅當我鏈接到jsoncpp
庫並將其包含目錄添加到Makefile中時,才會出現此問題。
我感到很困惑; 發生了什么?
您的jsoncpp包括必須像這樣:
#include <json/json.h>
並且您的包含路徑必須以包含目錄結尾,方法是:
INC = -I/home/ting/Temp/code/jsoncpp/include
如果您從include中省略json目錄,然后將其添加到INC變量中,編譯器將最終從json目錄中選擇一個features.h標頭,而不是glibc所需的features.h ,這會產生類似於一個錯誤您發布的內容(請注意glibc中的features.h定義了__GLIBC_PREREQ宏)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.