使用jsoncpp时遇到一个问题,将/usr/include/json 目录下的头文件拷贝到项目目录下的include文件夹之下,设定好libjson.so的搜索路径后编译,结果出了一大堆错误。错误内容基本上都是标准头文件的错误,如stdio.h,pthread.h之类的头文件错误。如下:In file included from /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h:148:0,
from /usr/include/c++/5/ext/atomicity.h:35,
from /usr/include/c++/5/bits/ios_base.h:39,
from /usr/include/c++/5/ios:42,
from /usr/include/c++/5/ostream:38,
from /usr/include/c++/5/iostream:39,
from /home/lin/workspace/src/ros_brain/src/main.cpp:1:
/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h:101:1: error: ‘pthread_once’ was not declared in this scope
__gthrw(pthread_once)
from /usr/include/c++/5/ext/atomicity.h:35,
from /usr/include/c++/5/bits/ios_base.h:39,
from /usr/include/c++/5/ios:42,
from /usr/include/c++/5/ostream:38,
from /usr/include/c++/5/iostream:39,
from /home/lin/workspace/src/ros_brain/src/main.cpp:1:
/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h:101:1: error: ‘pthread_once’ was not declared in this scope
__gthrw(pthread_once)
解决方法:1 项目文件下的include文件夹下建立一个json的新文件夹。
2 将/usr/include/json 目录下的头文件拷贝到新建的文件夹之下。
编译通过。