arm linux移植gsoap

安装环境

PC:Ubuntu

开发板系统:4.1.15 linux

开发板型号:正点原子alpha

交叉编译工具:arm-linux-gnueabihf

参考博客:landuochong

安装准备

gsoap官网 https://sourceforge.net/projects/gsoap2/files/latest/download

博主下了gsoap_2.8.106.zip

拷贝到ubuntu上并解压unzip gsoap_2.8.106.zip

编译安装

备份一份Ubuntu下的后面会用到

cp -rf gsoap-2.8/ gsoap-x86/

mv gsoap-2.8/ gsoap-arm

编译Ubuntu下的gsoap

cd gsoap-x86

./configure

make

make install

 

回到原先的目录进入另一份准备移植的目录

cd gsoap-arm

配置生成的目录,交叉编译环境

./configure --prefix=$PWD/install --host=arm-linux-gnueabihf CXX=arm-linux-gnueabihf-g++ CC=arm-linux-gnueabihf-gcc --disable-ssl

修改config.h

屏蔽#define malloc rpl_malloc

将#define HAVE_MALLOC 0    更改为:#define HAVE_MALLOC 1

编译 make

此次make会提示错误  /bin/bash: ../../gsoap/src/soapcpp2: cannot execute binary file: 可执行文件格式错误

因为是arm版本,在Ubuntu上是不可执行。进入gsoap/src目录确认生成的soapcpp2是否为arm版本

file soapcpp2

将该soapcpp2备份

mv soapcpp2 soapcpp2-arm

将gsoap-x86/gsoap/src目录下的soapcpp2拷贝到gsoap-arm/gsoap/src目录下

cp gsoap-x86/gsoap/src/soapcpp2 gsoap-arm/gsoap/src/

回到gsoap-arm/目录编译,此次编译无任何错误提示

make

进入gsoap-arm/gsoap/src/目录,将x86拷贝来的soapcpp2删除,将前面备份的soapcpp2-arm重命名soapcpp2

mv soapcpp2-arm soapcpp2

在当前目录下重新make

回到gsoap-arm目录进行安装 make install

安装完成后对应的安装目录下会生成bin include lib share 四个文件夹

将其拷贝到arm开发板上

soapapp2 -v

wsdl2h -v

进行验证

问题记录

wsdl2h: /lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by wsdl2h)

编译生成的执行文件在arm上缺少相关库

https://www.pianshen.com/article/1615164190/

下载libstdc++6-6-dbg_6.3.0-18+deb9u1_armhf.deb(libstdc++6…-dbg_..._armhf.deb)

拷贝到Ubuntu下解压

dpkg -X ./libstdc++6-6-dbg_6.3.0-18+deb9u1_armhf.deb libstdc++6

cd libstdc++6/usr/lib/arm-linux-gnueabihf/debug

将libstdc++.so.6.0.22 拷贝到arm的lib目录下

删除原先的libstdc++.so.6

重新连接 ln -s libstdc++.so.6.0.22 libstdc++.so.6

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值