json移植到ARM板
2015-11-04 09:27
495 查看
工具有:jsoncpp-src-0.5.0.tar.gz arm工具链 测试程序
sudo apt-get install scons 可惜没有使用,
tar xvf jsoncpp-src-0.5.0.tar.gz
资源包 http://pan.baidu.com/s/1dDpwfeT
编译arm下使用的动态库
由于不会使用scons最后还是自己该的编译方式反正成功了!呵呵
首先我执行了 scons platform=linux-gcc
编译的结果是
lib_json/main.cpp: In member function 'void ValueTest::checkMemberCount(Json::Value&, unsigned int)':
src/test_lib_json/main.cpp:195:71: warning: value computed is not used [-Wunused-value]
src/test_lib_json/main.cpp:195:71: warning: statement has no effect [-Wunused-value]
g++ -o buildscons/linux-gcc-4.6/src/test_lib_json/jsontest.o -c -Wall -Iinclude -I. src/test_lib_json/jsontest.cpp
g++ -o buildscons/linux-gcc-4.6/src/test_lib_json/test_lib_json buildscons/linux-gcc-4.6/src/test_lib_json/main.o buildscons/linux-gcc-4.6/src/test_lib_json/jsontest.o -Llibs/linux-gcc-4.6 -lpthread -ljson_linux-gcc-4.6_libmt
Install file: "buildscons/linux-gcc-4.6/src/test_lib_json/test_lib_json" as "bin/linux-gcc-4.6/test_lib_json"
targz(["dist/jsoncpp-src-0.5.0.tar.gz"], ["AUTHORS", "README.txt", "SConstruct", "src/jsontestrunner/main.cpp", "src/jsontestrunner/sconscript", "src/lib_json/json_reader.cpp", "src/lib_json/json_value.cpp", "src/lib_json/json_writer.cpp", "src/lib_json/sconscript",
"src/test_lib_json/main.cpp", "src/test_lib_json/jsontest.cpp", "src/test_lib_json/sconscript"])
。。。。。。。。。。。。。。。。。。。。。。。。很多(不是重点了)
提取下
g++ -o buildscons/linux-gcc-4.6/src/jsontestrunner/main.o -c -Wall -Iinclude -I. src/jsontestrunner/main.cpp
g++ -o buildscons/linux-gcc-4.6/src/lib_json/json_reader.o -c -Wall -Iinclude src/lib_json/json_reader.cpp
g++ -o buildscons/linux-gcc-4.6/src/lib_json/json_value.o -c -Wall -Iinclude src/lib_json/json_value.cpp
g++ -o buildscons/linux-gcc-4.6/src/lib_json/json_writer.o -c -Wall -Iinclude src/lib_json/json_writer.cpp
g++ -o buildscons/linux-gcc-4.6/src/lib_json/libjson_linux-gcc-4.6_libmt.so -shared buildscons/linux-gcc-4.6/src/lib_json/json_reader.o buildscons/linux-gcc-4.6/src/lib_json/json_value.o buildscons/linux-gcc-4.6/src/lib_json/json_writer.o -Llibs/linux-gcc-4.6
-lpthread
请大家将g++改为你的工具链 还有就是linux-gcc-4.6 是我的你的可能是其他,改好就是下面
arm-fsl-linux-gnueabi-gcc -o buildscons/linux-gcc-4.6/src/jsontestrunner/main.o -c -Wall -Iinclude -I. src/jsontestrunner/main.cpp
arm-fsl-linux-gnueabi-gcc -o buildscons/linux-gcc-4.6/src/lib_json/json_reader.o -c -Wall -Iinclude src/lib_json/json_reader.cpp
arm-fsl-linux-gnueabi-gcc -o buildscons/linux-gcc-4.6/src/lib_json/json_value.o -c -Wall -Iinclude src/lib_json/json_value.cpp
arm-fsl-linux-gnueabi-gcc -o buildscons/linux-gcc-4.6/src/lib_json/json_writer.o -c -Wall -Iinclude src/lib_json/json_writer.cpp
arm-fsl-linux-gnueabi-gcc -o buildscons/linux-gcc-4.6/src/lib_json/libjson_linux-gcc-4.6_libmt.so -shared buildscons/linux-gcc-4.6/src/lib_json/json_reader.o buildscons/linux-gcc-4.6/src/lib_json/json_value.o buildscons/linux-gcc-4.6/src/lib_json/json_writer.o
-Llibs/linux-gcc-4.6 -lpthread
好了大家先将无意生成的主机动态库给删除或移出去自己用把,
find ./ -name "*.so" -exec rm {} \;
find ./ -name "*.o" -exec rm {} \;
好了,编译一下ARM平台的动态库吧;
完了
find ./ -name "*.so"
有了后大家可以 file 一下看看是不是ARM平台的
动态库放在 /usr/lib 下方便啦!
现在可以编译test程序了;
#include <iostream>
#include <string>
#include "json/json.h"
#include <fstream>
using namespace std;
int ParseJsonFromFile(const char* filename)
{
Json::Reader reader;
Json::Value root;
std::ifstream is;
is.open (filename, std::ios::binary );
if (reader.parse(is, root))
{
std::string code;
if (!root["files"].isNull())
code = root["uploadid"].asString();
code = root.get("uploadid", "null").asString();
int file_size = root["files"].size();
for(int i = 0; i < file_size; ++i)
{
Json::Value val_image = root["files"][i]["images"];
int image_size = val_image.size();
for(int j = 0; j < image_size; ++j)
{
std::string type = val_image[j]["type"].asString();
std::string url = val_image[j]["url"].asString();
cout << "type = " << type << endl;
cout << "url = " << url << endl;
}
}
}
is.close();
return 0;
}
int main()
{
ParseJsonFromFile("file");
}
当前路径下有个file文件,内容是:
{"uploadid":"UP000000","code":"0","msg":"","files":[{"code":"0","msg":"","filename":"1D_16-35_1.jpg","filesize":"196690","width":"1024","height":"682","images":[{"url":"fmn061/20111118","type":"large","width":"720","height":"479"},{"url":"fmn061/2012222","type":"main","width":"200","height":"133"}]}]}
记得拷贝json.h头文件到相应的路径下。
动态库,
好了可以编译了arm-fsl-linux-gnueabi-g++ main.cpp -ljsoncpp -L./ (动态库名太长改了,大家因地自宜啊!不罗嗦了)
好了可以移植到ARM 上了,记得加动态库,和file,运行就好了。
sudo apt-get install scons 可惜没有使用,
tar xvf jsoncpp-src-0.5.0.tar.gz
资源包 http://pan.baidu.com/s/1dDpwfeT
编译arm下使用的动态库
由于不会使用scons最后还是自己该的编译方式反正成功了!呵呵
首先我执行了 scons platform=linux-gcc
编译的结果是
lib_json/main.cpp: In member function 'void ValueTest::checkMemberCount(Json::Value&, unsigned int)':
src/test_lib_json/main.cpp:195:71: warning: value computed is not used [-Wunused-value]
src/test_lib_json/main.cpp:195:71: warning: statement has no effect [-Wunused-value]
g++ -o buildscons/linux-gcc-4.6/src/test_lib_json/jsontest.o -c -Wall -Iinclude -I. src/test_lib_json/jsontest.cpp
g++ -o buildscons/linux-gcc-4.6/src/test_lib_json/test_lib_json buildscons/linux-gcc-4.6/src/test_lib_json/main.o buildscons/linux-gcc-4.6/src/test_lib_json/jsontest.o -Llibs/linux-gcc-4.6 -lpthread -ljson_linux-gcc-4.6_libmt
Install file: "buildscons/linux-gcc-4.6/src/test_lib_json/test_lib_json" as "bin/linux-gcc-4.6/test_lib_json"
targz(["dist/jsoncpp-src-0.5.0.tar.gz"], ["AUTHORS", "README.txt", "SConstruct", "src/jsontestrunner/main.cpp", "src/jsontestrunner/sconscript", "src/lib_json/json_reader.cpp", "src/lib_json/json_value.cpp", "src/lib_json/json_writer.cpp", "src/lib_json/sconscript",
"src/test_lib_json/main.cpp", "src/test_lib_json/jsontest.cpp", "src/test_lib_json/sconscript"])
。。。。。。。。。。。。。。。。。。。。。。。。很多(不是重点了)
提取下
g++ -o buildscons/linux-gcc-4.6/src/jsontestrunner/main.o -c -Wall -Iinclude -I. src/jsontestrunner/main.cpp
g++ -o buildscons/linux-gcc-4.6/src/lib_json/json_reader.o -c -Wall -Iinclude src/lib_json/json_reader.cpp
g++ -o buildscons/linux-gcc-4.6/src/lib_json/json_value.o -c -Wall -Iinclude src/lib_json/json_value.cpp
g++ -o buildscons/linux-gcc-4.6/src/lib_json/json_writer.o -c -Wall -Iinclude src/lib_json/json_writer.cpp
g++ -o buildscons/linux-gcc-4.6/src/lib_json/libjson_linux-gcc-4.6_libmt.so -shared buildscons/linux-gcc-4.6/src/lib_json/json_reader.o buildscons/linux-gcc-4.6/src/lib_json/json_value.o buildscons/linux-gcc-4.6/src/lib_json/json_writer.o -Llibs/linux-gcc-4.6
-lpthread
请大家将g++改为你的工具链 还有就是linux-gcc-4.6 是我的你的可能是其他,改好就是下面
arm-fsl-linux-gnueabi-gcc -o buildscons/linux-gcc-4.6/src/jsontestrunner/main.o -c -Wall -Iinclude -I. src/jsontestrunner/main.cpp
arm-fsl-linux-gnueabi-gcc -o buildscons/linux-gcc-4.6/src/lib_json/json_reader.o -c -Wall -Iinclude src/lib_json/json_reader.cpp
arm-fsl-linux-gnueabi-gcc -o buildscons/linux-gcc-4.6/src/lib_json/json_value.o -c -Wall -Iinclude src/lib_json/json_value.cpp
arm-fsl-linux-gnueabi-gcc -o buildscons/linux-gcc-4.6/src/lib_json/json_writer.o -c -Wall -Iinclude src/lib_json/json_writer.cpp
arm-fsl-linux-gnueabi-gcc -o buildscons/linux-gcc-4.6/src/lib_json/libjson_linux-gcc-4.6_libmt.so -shared buildscons/linux-gcc-4.6/src/lib_json/json_reader.o buildscons/linux-gcc-4.6/src/lib_json/json_value.o buildscons/linux-gcc-4.6/src/lib_json/json_writer.o
-Llibs/linux-gcc-4.6 -lpthread
好了大家先将无意生成的主机动态库给删除或移出去自己用把,
find ./ -name "*.so" -exec rm {} \;
find ./ -name "*.o" -exec rm {} \;
好了,编译一下ARM平台的动态库吧;
完了
find ./ -name "*.so"
有了后大家可以 file 一下看看是不是ARM平台的
动态库放在 /usr/lib 下方便啦!
现在可以编译test程序了;
#include <iostream>
#include <string>
#include "json/json.h"
#include <fstream>
using namespace std;
int ParseJsonFromFile(const char* filename)
{
Json::Reader reader;
Json::Value root;
std::ifstream is;
is.open (filename, std::ios::binary );
if (reader.parse(is, root))
{
std::string code;
if (!root["files"].isNull())
code = root["uploadid"].asString();
code = root.get("uploadid", "null").asString();
int file_size = root["files"].size();
for(int i = 0; i < file_size; ++i)
{
Json::Value val_image = root["files"][i]["images"];
int image_size = val_image.size();
for(int j = 0; j < image_size; ++j)
{
std::string type = val_image[j]["type"].asString();
std::string url = val_image[j]["url"].asString();
cout << "type = " << type << endl;
cout << "url = " << url << endl;
}
}
}
is.close();
return 0;
}
int main()
{
ParseJsonFromFile("file");
}
当前路径下有个file文件,内容是:
{"uploadid":"UP000000","code":"0","msg":"","files":[{"code":"0","msg":"","filename":"1D_16-35_1.jpg","filesize":"196690","width":"1024","height":"682","images":[{"url":"fmn061/20111118","type":"large","width":"720","height":"479"},{"url":"fmn061/2012222","type":"main","width":"200","height":"133"}]}]}
记得拷贝json.h头文件到相应的路径下。
动态库,
好了可以编译了arm-fsl-linux-gnueabi-g++ main.cpp -ljsoncpp -L./ (动态库名太长改了,大家因地自宜啊!不罗嗦了)
好了可以移植到ARM 上了,记得加动态库,和file,运行就好了。
相关文章推荐
- JavaScript在Frame中的menuG5菜单
- js实现完美身份证号有效性验证
- JavaScript前端开发之实现二进制读写操作
- JS学习笔记
- JSP
- C#执行Javascript代码的几种方法总结
- JS学习笔记(03)——(联动菜单,计时器)
- DisJSet:Find them, Catch them(POJ 1703)
- JSP中内建exception对象时出现500错误的解决方法
- jsp编程中session的用法实例分析
- Js插件ECharts,HighCharts学习网址整理
- JavaScript前端开发之实现二进制读写操作
- JS实现网页上随滚动条滚动的层效果代码
- JS实现超精简的链接列表在固定区域内滚动效果代码
- JS实现获取键盘按下的按键并显示在页面上的方法
- 【D3.js数据可视化实战】--(3)桑基图(sankey)的绘制
- 解决js图片加载时出现404的问题
- js数组去重的5种算法实现
- 基于JavaScript实现移动端点击图片查看大图点击大图隐藏
- javascript常用函数(1)