在TX2上(arm架构)安装FastDB

32 篇文章 3 订阅

前面已经介绍过Fast DB,并且在x86_64环境下使用。由于工作的需要,现在要在tx2开发板上使用fastdb。由于tx2不是x86架构,所以直接安装是不行的。执行make命令后,报错:

本来想着在PC上安装配置交叉编译环境,然后在PC上编译arm架构可用的libfastdb.so。尝试后发现比较困难。于是请教同学。同学看后发现make的输出还是比较人性化的,输出总共3段,第一段是编译过程中编译过的东西,后面一段(g++开头的那一段,直到libfastdb.so.2.0.0)是报错的时候执行的指令,最后是error信息。分析error发现是4个.o文件找不到。然后我们纳闷为什么在arm环境下还是去找x86_64下的库/文件。在看makefile发现里面是写死的,指定了x86_64-linux-gnu。直接改makefile发现也比较麻烦。

最后决定直接修改上面出错的那一行命令。

我们使用find -name 命令查找缺失的4个文件,crti.o在/usr/lib/aarch64-linux-gnu/目录下,其他3个也在/usr/lib/aarch64-linux-gnu或者/usr/lib/gcc/aarch64-linux-gnu其子目录下。而出错的语句后面跟了很多配置参数,指明的路径有问题,如果我们把路径修改成正确的,是否就可以编译成功呢?或者说这一步编译成功呢?我们试一下,修改成如下:

g++ -shared -nostdlib /usr/lib/aarch64-linux-gnu/crti.o /usr/lib/gcc/aarch64-linux-gnu/5/crtbeginS.o  .libs/class.o .libs/compiler.o .libs/database.o .libs/xml.o .libs/hashtab.o .libs/file.o .libs/symtab.o .libs/ttree.o .libs/rtree.o .libs/container.o .libs/cursor.o .libs/query.o .libs/wwwapi.o .libs/unisock.o .libs/sync.o .libs/localcli.o .libs/stdtp.o .libs/server.o  -lpthread -L/usr/local/fastdb/lib/../lib -L/usr/lib/gcc/aarch64-linux-gnu/5 -L/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu -L/usr/lib/gcc/aarch64-linux-gnu/5/../../../../lib -L/lib/aarch64-linux-gnu -L/lib/../lib -L/usr/lib/aarch64-linux-gnu -L/usr/lib/../lib -L/usr/local/fastdb/lib -L. -L/usr/lib/gcc/aarch64-linux-gnu/5/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/aarch64-linux-gnu/5/crtendS.o /usr/lib/aarch64-linux-gnu/crtn.o  -Wl,-soname -Wl,libfastdb.so.2 -o .libs/libfastdb.so.2.0.0

 然后编译通过(这里一定要到fastdb/src/目录下去编译)!生成的可执行文件如subsql等,就在src目录下,而生成的lib库文件在src/.libs/这个隐藏目录下。

然后将生成的libfastdb.so.2.0.0复制到/usr/local/lib/并更名为libfastdb.so。subsql, forcerecovery, cleanupsem, cgistub拷贝至开发板的/usr/local/bin/路径下。后面再编译整个catkin_ws就可以通过了。

后面需要代码的,可以去我csdn的资源里下载。

参考:

https://www.oipapio.com/cn/article-978778(这个没有用到)

https://blog.csdn.net/ajigegege/article/details/6773263(这个也没有用到)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值