{"id":214,"date":"2018-02-14T11:21:09","date_gmt":"2018-02-14T03:21:09","guid":{"rendered":"http:\/\/www.inhhh.com\/blog\/?p=214"},"modified":"2018-03-13T17:12:15","modified_gmt":"2018-03-13T09:12:15","slug":"ubuntu-%e4%b8%8b%e4%bd%bf%e7%94%a8-jsoncpp%e5%ba%93","status":"publish","type":"post","link":"http:\/\/www.inhhh.com\/blog\/?p=214","title":{"rendered":"ubuntu \u4e0b\u4f7f\u7528 jsoncpp\u5e93"},"content":{"rendered":"<p>\u505a\u9879\u76ee\u7684\u65f6\u5019\u9700\u8981\u7528c++\u89e3\u6790json\u6587\u4ef6, \u4e4b\u524d\u4f7f\u7528\u7684\u662f<a href=\"http:\/\/sourceforge.net\/projects\/libjson\/\" target=\"_blank\" rel=\"noopener noreferrer\"> libjson<\/a>\u00a0\u5e93, \u4f46\u5f53g++ \u5f00\u542f -std=c++11 \u9009\u9879\u65f6, \u8be5\u5e93\u7684\u5f88\u591a\u529f\u80fd\u4e0d\u80fd\u7528, \u800c\u4e14\u8fd8\u6709\u4e00\u4e9b\u5176\u4ed6\u7684\u95ee\u9898, \u4e0d\u63a8\u8350\u4f7f\u7528. \u540e\u6765\u91c7\u7528\u7684\u662f <a href=\"https:\/\/github.com\/open-source-parsers\/jsoncpp\" target=\"_blank\" rel=\"noopener noreferrer\">jsoncpp<\/a>\u00a0\u5e93, \u53ef\u4ee5\u5728ubuntu\u4e0b\u7528\u4e0b\u9762\u7684\u547d\u4ee4\u5b89\u88c5\u8be5\u5e93:<\/p>\n<div class=\"dp-highlighter bg_plain\">\n<div class=\"bar\">\n<div class=\"tools\">\n<p><b>[plain]<\/b> <a class=\"ViewSource\" title=\"view plain\" href=\"http:\/\/blog.csdn.net\/xzz_hust\/article\/details\/40079261#\">view plain<\/a><span class=\"tracking-ad\" data-mod=\"popu_168\"> <a class=\"CopyToClipboard\" title=\"copy\" href=\"http:\/\/blog.csdn.net\/xzz_hust\/article\/details\/40079261#\">copy<\/a><\/span><\/p>\n<div><embed id=\"ZeroClipboardMovie_1\" src=\"http:\/\/static.blog.csdn.net\/scripts\/ZeroClipboard\/ZeroClipboard.swf\" type=\"application\/x-shockwave-flash\" width=\"16\" height=\"16\" align=\"middle\" name=\"ZeroClipboardMovie_1\" data-mce-fragment=\"1\"><\/embed><\/div>\n<\/div>\n<\/div>\n<ol start=\"1\">\n<li class=\"alt\">sudo\u00a0apt-get\u00a0libjsoncpp-dev\u00a0libjsoncpp0<\/li>\n<\/ol>\n<\/div>\n<p>\u5e93\u7684\u5934\u6587\u4ef6\u5b89\u88c5\u5728\/usr\/include\/jsoncpp\u4e2d, \u5e93API\u6587\u6863\u9ed8\u8ba4\u5728\/usr\/share\/doc\/libjsoncpp-dev\/jsoncpp-api-html\/\u76ee\u5f55\u4e0b . jsoncpp \u7684<a href=\"https:\/\/github.com\/open-source-parsers\/jsoncpp\" target=\"_blank\" rel=\"noopener noreferrer\">github\u4e3b\u9875<\/a>\u4e0a\u4e5f\u7ed9\u51fa\u4e86\u751f\u6210\u5e93\u6587\u6863\u7684\u65b9\u6cd5. \u4f7f\u7528\u8be5\u5e93\u7684\u65b9\u6cd5\u5f88\u7b80\u5355, \u5728\u4f60\u7684\u7a0b\u5e8f\u4e2d\u52a0\u5165<\/p>\n<div class=\"dp-highlighter bg_cpp\">\n<div class=\"bar\">\n<div class=\"tools\">\n<p><b>[cpp]<\/b> <a class=\"ViewSource\" title=\"view plain\" href=\"http:\/\/blog.csdn.net\/xzz_hust\/article\/details\/40079261#\">view plain<\/a><span class=\"tracking-ad\" data-mod=\"popu_168\"> <a class=\"CopyToClipboard\" title=\"copy\" href=\"http:\/\/blog.csdn.net\/xzz_hust\/article\/details\/40079261#\">copy<\/a><\/span><\/p>\n<div><embed id=\"ZeroClipboardMovie_2\" src=\"http:\/\/static.blog.csdn.net\/scripts\/ZeroClipboard\/ZeroClipboard.swf\" type=\"application\/x-shockwave-flash\" width=\"16\" height=\"16\" align=\"middle\" name=\"ZeroClipboardMovie_2\" data-mce-fragment=\"1\"><\/embed><\/div>\n<\/div>\n<\/div>\n<ol class=\"dp-cpp\" start=\"1\">\n<li class=\"alt\"><span class=\"preprocessor\">#include\u00a0&lt;jsoncpp\/json\/json.h&gt;<\/span><\/li>\n<\/ol>\n<\/div>\n<p>\u5373\u53ef.<\/p>\n<p>\u5177\u4f53\u7528\u6cd5\u53c2\u8003API\u6587\u6863, \u975e\u5e38\u7b80\u5355.<\/p>\n<p>&nbsp;<\/p>\n<p>\u3001\u3001\u3001\u3001\u3001\u3001\u3001\u3001\u3001\u3001\u3001\u3001\u3001\u3001\u3001\u3001\u3001\u3001\u3001\u3001\u3001<\/p>\n<p>\u65b9\u6cd5\u4e8c\uff1a<\/p>\n<p><strong>\u91cd\u70b9\u5185\u5bb9<\/strong><br \/>\n\u4e00.\u51c6\u5907\uff1a<br \/>\n1.\u5b89\u88c5 scons<br \/>\nscons\u662f\u7528Python\u8fdb\u884c\u7f16\u8bd1\u7684\uff0c\u800cLinux\u5927\u7248\u672c\u90fd\u5e26\u6709Python \u6240\u4ee5\u4e0d\u7528\u5b89\u88c5\uff0c\u53ea\u9700\u5b89\u88c5scons\u5373\u53ef\u3002\u5728\u5b89\u88c5scons\u662f\u6709\u4e24\u79cd\u65b9\u6cd5:<br \/>\n(1)\u5728\u7ec8\u7aef\u4e0b\u547d\u4ee4\u884c\u5b89\u88c5 sudo apt-get install scons<br \/>\n(2)\u53bb\u7f51\u7ad9\u4e0b\u8f7d\u6e90\u7801\u5305\u7f16\u8bd1\u5b89\u88c5;(\u4e2a\u4eba\u5efa\u8bae\u53bb\u7f51\u7ad9\u4e0b\u8f7d\u6e90\u7801\u5305\u81ea\u5df1\u7f16\u8bd1\uff0c\u8fd9\u6837\u6587\u4ef6\u8def\u5f84\u6bd4\u8f83\u6e05\u695a\uff0c\u547d\u4ee4\u884c\u7684\u5b89\u88c5\u8def\u5f84\u90fd\u662f\u7cfb\u7edf\u9ed8\u8ba4\u8def\u5f84\uff0c\u4e0d\u4fbf\u67e5\u627e)<a href=\"http:\/\/sourceforge.net\/projects\/scons\/files\/scons\/2.1.0\/scons-2.1.0.tar.gz\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/sourceforge.net\/projects\/scons\/files\/scons\/2.1.0\/scons-2.1.0.tar.gz<\/a><br \/>\n\u8fdb\u5165\u89e3\u538b\u76ee\u5f55\u6267\u884c\u5982\u4e0b\u547d\u4ee4\uff1a<br \/>\nPython setup.py install<br \/>\n\u7136\u540e\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf export MYSCONS=\u89e3\u538b\u8def\u5f84<\/p>\n<p>export SCONS_LIB_DIR=$MYSCONS\/engine<br \/>\n2.\u5b89\u88c5 jsoncpp<br \/>\n\u5148\u53bb\u5b98\u7f51\u4e0b\u8f7djsoncpp\u7684\u6e90\u7801\u5305<br \/>\n<a href=\"http:\/\/sourceforge.net\/projects\/jsoncpp\/files\/\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/sourceforge.net\/projects\/jsoncpp\/files\/<\/a><br \/>\n\u63a5\u4e0b\u6765\u4e00\u6b21\u6267\u884c\u547d\u4ee4\uff1a<br \/>\ntar -zxf jsoncpp-src-0.5.0.tar.gz<br \/>\ncd jsoncpp-src-0.5.0<br \/>\nscons platform=linux-gcc<br \/>\nmv libs\/linux-gcc-5.4.0\/libjson_linux-gcc-5.4.0_libmt.so \/lib<br \/>\nmv include\/json\/ \/usr\/include<\/p>\n<p>sudo mv libjson_linux-gcc-5.4.0_libmt.a \/usr\/local\/lib\/json_5.4.0.a<\/p>\n<p>\u6700\u540e\u4e24\u6b65\u7684\u6267\u884c\u65f6\u4e0d\u4e00\u6837\u7684\uff0c\u770b\u4f60\u60f3\u628a\u6587\u4ef6\u65b9\u5728\u54ea\u4e2a\u76ee\u5f55\uff0c\u6211\u662f\u653e\u5728\/usr\/lib \u4e0b\u7684\uff0c\u5934\u6587\u4ef6\u653e\u5728\/usr\/include\u4e0b;<\/p>\n<p align=\"justify\"><strong>1\u3001\u4e0b\u8f7d\u5de5\u5177<\/strong><\/p>\n<p align=\"justify\">JsonCpp<\/p>\n<p align=\"justify\"><a href=\"http:\/\/sourceforge.net\/projects\/jsoncpp\/files\/\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/sourceforge.net\/projects\/jsoncpp\/files\/<\/a><\/p>\n<p align=\"justify\">\u6bd4\u5982\u4e0b\u8f7d\u7684\u00a0jsoncpp-src-0.5.0.tar.gz<\/p>\n<p align=\"justify\">$ tar -zxvf jsoncpp-src-0.5.0 -C jsoncpp<\/p>\n<p align=\"justify\">\u8bf4\u660e\uff1a<\/p>\n<p align=\"justify\">\u2460\u00a0\u5b89\u88c5JsonCpp\u9700\u8981\u4e0b\u8f7dJsonCpp\u548cScon\u8fd8\u9700\u8981\u673a\u5668\u4e0a\u6709python<\/p>\n<p align=\"justify\">\u2461\u00a0scons\u53c8\u662f\u4e00\u4e2a\u725b\u53c9\u7684\u5de5\u5177\uff0c\u529f\u80fd\u548cGNU make\u4e00\u6837\uff0c\u53c8\u6bd4make\u7b80\u5355\u591a\u4e86\u3002scons\u662fpython\u5de5\u5177\uff0c\u9700\u8981\u5148\u5b89\u88c5\u597dpython\u3002<\/p>\n<p>&nbsp;<\/p>\n<p align=\"justify\"><strong>2\u3001\u5b89\u88c5<\/strong><\/p>\n<p align=\"justify\">(1)\u00a0\u5b89\u88c5 scons<\/p>\n<p align=\"justify\">\u00a0 \u00a0$ sudo apt-get install scons<\/p>\n<p align=\"justify\">(2) \u5207\u6362\u5230 jsoncpp \u76ee\u5f55<\/p>\n<p align=\"justify\">\u00a0 \u00a0$ python \/usr\/bin\/scons platform=linux-gcc<\/p>\n<p align=\"justify\">(3)\u00a0\u751f\u6210\u9759\u6001\u548c\u52a8\u6001\u5e93\u6587\u4ef6<\/p>\n<p align=\"justify\">\u00a0 \u00a0 \u5728jsoncpp\/libs\/linux-gcc-4.7\u76ee\u5f55\u4e0b<\/p>\n<p align=\"justify\"><strong>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 libjson_linux-gcc-4.7_libmt.a<\/strong><\/p>\n<p align=\"justify\"><strong>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 libjson_linux-gcc-4.7_libmt.so<\/strong><\/p>\n<p align=\"justify\">\u00a0 \u00a0 $ sudo mkdir \/usr\/local\/lib<\/p>\n<p align=\"justify\">(4)\u00a0\u628a\u4e24\u4e2a\u5e93\u6587\u4ef6\u62f7\u8d1d\u5230\/usr\/local\/lib\u76ee\u5f55\u4e0b<\/p>\n<p align=\"justify\">\u00a0 \u00a0\u00a0$\u00a0sudo cp libjson_linux-gcc-4.7_libmt.* \/usr\/local\/lib<\/p>\n<p align=\"justify\">(5)\u00a0\u5c06\u9759\u6001\u5e93\u91cd\u547d\u540d\u4e3alibjsoncpp.a libjsoncpp.so (mv \u547d\u4ee4)<\/p>\n<p align=\"justify\">\u00a0(6) \u00a0 \u5207\u6362\u5230 jsoncpp\/include\/json \u76ee\u5f55<\/p>\n<p align=\"justify\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0$ sudo mkdir \/usr\/local\/include\/jsoncpp<\/p>\n<p align=\"justify\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0$ sudo cp * \/usr\/local\/include\/jsoncpp<\/p>\n<h5>3\u3001\u4f7f\u7528<\/h5>\n<p>\uff081\uff09\u5305\u542b\u5934\u6587\u4ef6<\/p>\n<p>#include &lt;jsoncpp\/json.h&gt;<\/p>\n<p>\uff082\uff09 \u7f16\u8bd1<\/p>\n<p>\u52a0\u94fe\u63a5\u9009\u9879 \u00a0 \u00a0-ljsoncpp<\/p>\n<p>&nbsp;<\/p>\n<p>\u5728linux\u4e0b\u8fd0\u884c\u7a0b\u5e8f\u65f6\uff0c\u53d1\u73b0\u4e86error while loading shared libraries\u8fd9\u79cd\u9519\u8bef\uff0c\u89e3\u51b3\uff1a<\/p>\n<p>.\/tests: error while loading shared libraries: xxx.so.0:cannot open shared object file: No such file or directory<br \/>\n\u51fa\u73b0\u8fd9\u7c7b\u9519\u8bef\u8868\u793a\uff0c\u7cfb\u7edf\u4e0d\u77e5\u9053xxx.so\u653e\u5728\u54ea\u4e2a\u76ee\u5f55\u4e0b\uff0c\u8fd9\u65f6\u5019\u5c31\u8981\u5728\/etc\/ld.so.conf\u4e2d\u52a0\u5165xxx.so\u6240\u5728\u7684\u76ee\u5f55\u3002<br \/>\n\u4e00\u822c\u800c\u8a00\uff0c\u6709\u5f88\u591a\u7684so\u4f1a\u5b58\u653e\u5728\/usr\/local\/lib\u8fd9\u4e2a\u76ee\u5f55\u5e95\u4e0b\uff0c\u53bb\u8fd9\u4e2a\u76ee\u5f55\u5e95\u4e0b\u627e\uff0c\u679c\u7136\u53d1\u73b0\u81ea\u5df1\u6240\u9700\u8981\u7684.so\u6587\u4ef6\u3002<br \/>\n\u6240\u4ee5\uff0c\u5728<br \/>\nsudo gedit \/etc\/ld.so.conf<br \/>\n\u4e2d\u52a0\u5165\/usr\/local\/lib\u8fd9\u4e00\u884c\uff0c\u4fdd\u5b58\u4e4b\u540e\uff0c<br \/>\n\u518d\u8fd0\u884c\uff1asudo \/sbin\/ldconfig \u2013v<\/p>\n<p>\u66f4\u65b0\u4e00\u4e0b\u914d\u7f6e\u5373\u53ef\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u505a\u9879\u76ee\u7684\u65f6\u5019\u9700\u8981\u7528c++\u89e3\u6790json\u6587\u4ef6, \u4e4b\u524d\u4f7f\u7528\u7684\u662f libjson\u00a0\u5e93, \u4f46\u5f53g++ \u5f00\u542f -std=c<\/p>\n<div class=\"more-link\">\n\t\t\t\t <a href=\"http:\/\/www.inhhh.com\/blog\/?p=214\" class=\"link-btn theme-btn\"><span>Read More <\/span> <i class=\"fa fa-caret-right\"><\/i><\/a>\n\t\t\t<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-214","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/214","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=214"}],"version-history":[{"count":6,"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/214\/revisions"}],"predecessor-version":[{"id":225,"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/214\/revisions\/225"}],"wp:attachment":[{"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=214"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=214"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=214"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}