在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

 

目前还没有发现是什么原因。


Logo

更多推荐