onvif客户端(SOAPClient)编译错误记录

1.freelocale未定义

问题编译错误提示:

stdsoap2.c:7468:对‘freelocale’未定义的引用
stdsoap2.c:7468:对‘freelocale’未定义的引用
stdsoap2.c:7468:对‘freelocale’未定义的引用
stdsoap2.c:16684:对‘strtod_l’未定义的引用
stdsoap2.c:16684:对‘newlocale’未定义的引用

把stdsoap2.h中的这个定义注释掉即可:

# elif defined(__GLIBC__) || defined(__GNU__) || defined(__GNUC__)
#  define HAVE_POLL
#  define HAVE_SNPRINTF
#  define HAVE_STRRCHR
#  define HAVE_STRTOD
#  define HAVE_SSCANF
#  define HAVE_STRTOD_L
#  define HAVE_SSCANF_L
#  define HAVE_STRTOL
#  define HAVE_STRTOUL
#  define HAVE_STRTOLL
#  define HAVE_STRTOULL
#  define HAVE_GETTIMEOFDAY
#  define HAVE_SYS_TIMEB_H
#  define HAVE_FTIME
#  define HAVE_RAND_R
#  define HAVE_GMTIME_R
#  define HAVE_ASCTIME_R
#  define HAVE_LOCALTIME_R
#  define HAVE_STRERROR_R
#  define HAVE_TIMEGM
#  define HAVE_WCTOMB
#  define HAVE_MBTOWC
#  define HAVE_ISNAN
#  define HAVE_ISINF
#  if !defined(__GNUC__) || __GNUC__ >= 4 /* gcc 3 and earlier often refuse to compile _l functions */
#   define HAVE_STRTOD_L
#   define HAVE_SSCANF_L
//#   define HAVE_LOCALE_H  //注释掉解决freelocale未定义问题

2.__isnan等等未定义

stdsoap2.c:(.text+0x6194): warning: gethostbyname_r is obsolescent, use getnameinfo() instead.
/tmp/ccqD1Pz1.o: In function `soap_float2s':
stdsoap2.c:(.text+0x19a80): undefined reference to `__isnan'
stdsoap2.c:(.text+0x19ad0): undefined reference to `__isnanf'
stdsoap2.c:(.text+0x19af4): undefined reference to `__isnanf'
stdsoap2.c:(.text+0x19b44): undefined reference to `__isnanf'
stdsoap2.c:(.text+0x19b68): undefined reference to `__isnanf'
/tmp/ccqD1Pz1.o: In function `soap_double2s':
stdsoap2.c:(.text+0x1a378): undefined reference to `__isnan'
stdsoap2.c:(.text+0x1a3cc): undefined reference to `__isnan'
stdsoap2.c:(.text+0x1a3f8): undefined reference to `__isnan'
stdsoap2.c:(.text+0x1a44c): undefined reference to `__isnan'
stdsoap2.c:(.text+0x1a478): undefined reference to `__isnan'
collect2: ld returned 1 exit status

加上连接库 -lm 就可以编译通过了;

微信公众号(fensnote):
微信公众号

Guess you like

Origin blog.csdn.net/wuquan_1230/article/details/118790287