IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 移植libzdb3.2.2到arm -> 正文阅读

[大数据]移植libzdb3.2.2到arm

一、下载库压缩包并解压

http://www.tildeslash.com/libzdb/#home
http://www.tildeslash.com/libzdb/dist/libzdb-3.2.2.tar.gz
tar -xvf /mnt/hgfs/share/libzdb-3.2.2.tar.gz -C ./

二、导入交叉编译工具链环境变量

export PATH=$PATH:/opt/toolchain-3.4.x/bin/

三、配置与安装

./configure --host=mipsel-linux-uclibc --prefix=/home/wxx/work/test/sqlite3/libzdb-3.2.2/install/

问题1:

configure: error: cannot run test program while cross compiling

解决问题1:

屏蔽掉所有出现该错误的地方(一共两处):

?重新配置,出现问题2:

checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking setjmp is available... configure: error: cross-compiling: please set 'libzdb_cv_setjmp_available=yes|no'

解决问题2:(重新添加配置参数--cache-file=mipsel-linux.cache)

echo libzdb_cv_setjmp_available=yes>>mipsel-linux.cache
echo libzdb_cv_vsnprintf_c11_conformant=yes>>mipsel-linux.cache

./configure --host=mipsel-linux-uclibc --prefix=/home/wxx/work/test/sqlite3/libzdb-3.2.2/install/ --cache-file=mipsel-linux.cache

重新配置出现问题3:

configure: WARNING: mysql_config is required to build libzdb with mysql
checking for oracle... checking if Oracle support is enabled... no
configure: error: No available database found or selected. Try configure --help

解决问题3:

找到sqlite3的库路径并通过--with-sqlite来指定

./configure --host=mipsel-linux-uclibc --prefix=/home/wxx/work/test/sqlite3/libzdb-3.2.2/install/ --cache-file=mipsel-linux.cache --with-sqlite=/home/wxx/work/test/sqlite3/libzdb-3.2.2/sqlite3

?重新配置出现问题4:

checking for /home/wxx/work/test/sqlite3/libzdb-3.2.2/sqlite3... configure: error: cannot check for file existence when cross compiling

解决问题4:

屏蔽掉所有出现该问题的地方(检测环境交叉编译环境用,可以屏蔽掉)

?重新执行configure,成功:

四、编译安装

执行make出现问题5:

./tools/bin/filterh < src/zdb.h > zdb/zdb.h || exit 1
/bin/bash: ./tools/bin/filterh: cannot execute binary file: Exec format error
make: *** [Makefile:1251: zdb/zdb.h] Error 1

解决问题5:

重新打开一个终端,在另外一个地方重新解压压缩包,执行“./configure”生成适合在宿主机运行的“./tools/bin/filterh”,并替换交叉编译环境的“filterh”

重新执行make编译出现问题6:

libtool: compile:  mipsel-linux-uclibc-gcc -DHAVE_CONFIG_H -I. -I./src -I/home/wxx/work/test/sqlite3/libzdb-3.2.2/sqlite3/include -Isrc -Isrc/util -Isrc/net -Isrc/db -Isrc/db/oracle -Isrc/exceptions -Wno-expansion-to-defined -Wno-nullability-completeness -Wno-address -Wno-pointer-sign -g -O2 -D_GNU_SOURCE -Wall -Wunused -Wno-unused-label -funsigned-char -c src/util/Vector.c  -fPIC -DPIC -o src/util/.libs/Vector.o
src/util/Vector.c: In function 'Vector_insert':
src/util/Vector.c:94: error: 'for' loop initial declarations are only allowed in C99 mode
src/util/Vector.c:94: note: use option -std=c99 or -std=gnu99 to compile your code
src/util/Vector.c: In function 'Vector_remove':
src/util/Vector.c:123: error: 'for' loop initial declarations are only allowed in C99 mode
src/util/Vector.c: In function 'Vector_map':
src/util/Vector.c:161: error: 'for' loop initial declarations are only allowed in C99 mode
At top level:
cc1: warning: unrecognized command line option "-Wno-nullability-completeness"
cc1: warning: unrecognized command line option "-Wno-expansion-to-defined"

解决问题6:

修改Makefile,在mipsel-linux-uclibc-gcc后面添加-std=c99

?重新执行make编译,出现问题7:

mipsel-linux-uclibc-gcc -DHAVE_CONFIG_H      -I../src -I../src/util -I../src/net -I../src/db -I../src/exceptions -Wno-expansion-to-defined -Wno-nullability-completeness -Wno-address -Wno-pointer-sign -g -O2 -D_GNU_SOURCE -Wall -Wunused -Wno-unused-label -funsigned-char -c -o pool.o pool.c
pool.c: In function 'testPool':
pool.c:589: error: 'for' loop initial declarations are only allowed in C99 mode
pool.c:589: note: use option -std=c99 or -std=gnu99 to compile your code
pool.c:595: error: redefinition of 'i'
pool.c:589: note: previous definition of 'i' was here
pool.c:595: error: 'for' loop initial declarations are only allowed in C99 mode
pool.c:605: error: redefinition of 'i'
pool.c:595: note: previous definition of 'i' was here
pool.c:605: error: 'for' loop initial declarations are only allowed in C99 mode
At top level:
cc1: warning: unrecognized command line option "-Wno-nullability-completeness"
cc1: warning: unrecognized command line option "-Wno-expansion-to-defined"
make[2]: *** [Makefile:428: pool.o] Error 1

后面的出错都是test目录的出错,可以忽略,直接执行make install生成库文件:

done?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:37:48  更:2022-03-24 00:38:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:39:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码