我是靠谱客的博主 害羞猎豹,最近开发中收集的这篇文章主要介绍记录 ubuntu 20.04 下编译 gsoap 的过程及问题1 直接安装 `gSOAP`2 源代码编译 `gSOAP`,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1 直接安装 `gSOAP`

  如果不是跨平台或交叉编译的需要,直接使用命令安装即可,安装命令:

    # 安装 ONVIF 框架编译工具(wsdl2h + soapcpp2)
    sudo apt install gsoap

    # 安装库文件(lib + 头文件)
    sudo apt install libgsoap-dev
    # 注意:直接安装的没有 stdsoap2.c 和 typemap.dat 文件,
    #      编译 ONVIF 框架时需要它们,需要去下载 gsoap 源代码。

    # gsoap 工具:
    #     wsdl2h:编译生成 onvif.h 框架头文件。
    #   soapcpp2:根据 onvif.h 生成 ONVIF 框架。

2 源代码编译 `gSOAP`

下面描述的是:在 ubuntu 20.04 平台上对 gsoap_2.8.91.tar.gz 进行编译。

2.1 源代码 `依赖`

(1) bison-3.0.2.tar.xz
(2) flex-2.6.4.tar.gz
(3) openssl-1.0.2h.tar.gz
(4) gsoap_2.8.123.7z

2.2 编译 `bison`

# 编译命令:
$ ./configure --prefix=/home/wangxl/onvif/install/bison

# 编译错误:
lib/fseterr.c:77:3: error: #error "Please port gnulib fseterr.c to your platform! Look at the definitions of ferror and clearerr on your system, then report this to bug-gnulib."

# 解决方法:
将 bison/lib/fseterr.c 的第 32 行修改为:
#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1

# 修改完后再进行编译 !

2.3 编译 `flex`

# 编译命令:
$ ./configure --prefix=/home/wangxl/onvif/install/flex

2.4 编译 `openssl`

# 编译命令:
$ ./config --prefix=/home/wangxl/onvif/install/openssl
$ make depend
$ make -j5
$ make install

2.5 编译 `gsoap`

# 编译命令:
$ ./configure --prefix=/home/wangxl/onvif/install/gsoap CPPFLAGS="-I /home/wangxl/onvif/install/flex/include" CFLAGS="-fPIC -Wl,-L /home/wangxl/onvif/install/flex/lib -lfl -L /home/wangxl/onvif/install/bison/lib -ly" --with-openssl="/home/wangxl/onvif/install/openssl"

# 编译错误1:
stdsoap2.h:1865:34: error: ‘malloc’ was not declared in this scope
# 解决方法: 将 config.h 的第 280 行的 #define malloc rpl_malloc 屏蔽掉。

# 编译错误2:
make[4]: *** 没有规则可制作目标“../gsoap/extras/*”,由“all-am” 需求。 停止。
# 解决方法: 将 makefile 的第 440 行的 $(top_srcdir)/gsoap/extra/* 删去。

# 编译错误3:
make[4]: 进入目录“/home/wangxl/onvif/gsoap-2.8.91/gsoap/wsdl”
dso_dlfcn.c:(.text+0x2a): undefined reference to “dlsym”
# 解决方法: 将 gsoap/wsdl/makefile 中的 LIBS 加上 -ldl(即:LIBS=-ldl)

 2.6 编译结果


 至此,gsoap 编译完成!

 

最后

以上就是害羞猎豹为你收集整理的记录 ubuntu 20.04 下编译 gsoap 的过程及问题1 直接安装 `gSOAP`2 源代码编译 `gSOAP`的全部内容,希望文章能够帮你解决记录 ubuntu 20.04 下编译 gsoap 的过程及问题1 直接安装 `gSOAP`2 源代码编译 `gSOAP`所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部