在linux上完成了对jsoncpp的编译,产生了.a和.so的库。
原本以为可以直接将json目录下的几个.h文件和lib目录下的库文件加入到工程即可,但事实证明是错误的,编译时报莫名错误如下:
-------------- 构建: Debug inWalkEngineServer ---------------
正在编译: WalkEngineServer.cpp
在包含自 /usr/include/libio.h:62 的文件中,
从/usr/include/stdio.h:75,
从/data/develop/WalkEngineServer/WalkEngineServer.cpp:1:
/usr/include/sys/cdefs.h:46:44: 错误:标识符“(”前缺少二元运算符
/usr/include/sys/cdefs.h:50:44: 错误:标识符“(”前缺少二元运算符
/usr/include/sys/cdefs.h:135:19: 错误:标识符“(”前缺少二元运算符
/usr/include/sys/cdefs.h:151:19: 错误:标识符“(”前缺少二元运算符
/usr/include/sys/cdefs.h:209:19: 错误:标识符“(”前缺少二元运算符
/usr/include/sys/cdefs.h:218:19: 错误:标识符“(”前缺少二元运算符
/usr/include/sys/cdefs.h:227:19: 错误:标识符“(”前缺少二元运算符
(…….)
后发现需要保留 include/json这种目录结构,否则就报错。
于是,可以根据自己的需要,将include和lib放在任何位置。
但在编译是引入,必须是到 include这级目录,不能到内部的json目录。
比如:
TestJson : testJsonCpp.cpp
g++-o TestJson testJsonCpp.cpp -I /home/jsoncpp/include \
-lpq/home/jsoncpp/lib/libjson_linux-gcc-4.4.5_libmt.a
目前还没有发现是什么原因。