ushare编译之 ‘struct sockaddr_storage’ has no member named ‘s_addr’

编译ushare的时候出现‘struct sockaddr_storage’ has no member named ‘s_addr’

这是使用libupnp1.6.19出现版本不兼容的错误。

解决方法:libupnp换成1.4.2版本

配置:

----------------------------------------------------------------------------------------------------

$ ./configure

Checking forcompiler available...

Checking for locales...

Checking for ifaddrs...

Checking forlanginfo ...

Checking for iconv...

Checking for libixml...

Checking forlibthreadutil ...

Checkingfor libupnp >= 1.4.2 ...

uShare: configure isOK

version            1.1a

using libupnp      1.6.19

configuration:

install prefix     /usr/local

configuration dir  ${PREFIX}/etc

locales dir        ${PREFIX}/share/locale

NLS support        yes

DLNA support       no

C compiler         gcc

STRIP              strip

make               make

CPU                x86 ()

debug symbols      no

strip symbols      yes

optimize           yes

CFLAGS              -I.. -W -Wall -D_LARGEFILE_SOURCE-D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_GNU_SOURCE -O3 -DHAVE_LOCALE_H-DHAVE_SETLOCALE -DHAVE_IFADDRS_H -DHAVE_LANGINFO_H -DHAVE_LANGINFO_CODESET-DHAVE_ICONV
-pthread -I/usr/local/include/upnp

LDFLAGS

extralibs           -lixml -lthreadutil -lpthread -lupnp-pthread -L/usr/local/lib

Creating config.mak...

Creating config.h...

-------------------------------------------------------------------------------------------------

需要开启DLNA支持的话,使用:

$./configure --enablle-dlna

编译:

$make

----------------------------------------------------------------------------

ushare.c: Infunction ‘handle_action_request’:

ushare.c:191:29:error: ‘struct sockaddr_storage’ has no member named ‘s_addr’

make[1]: ***[ushare.o] Error 1

make[1]: Leavingdirectory `/home/won/Downloads/ushare-1.1a/src‘

make: *** [all]Error 2

---------------------------------------------------------------------------

查看ushare.c文件对应内容:

…/src/ushare.c

-----------------------------------------------------------------------------------------------------------------------

191 
 ip = request->CtrlPtIPAddr.s_addr;

192   ip = ntohl (ip);

193   sprintf (val, "%d.%d.%d.%d",

194            (ip >> 24) & 0xFF, (ip>> 16) & 0xFF, (ip >> 8) & 0xFF, ip & 0xFF);

-----------------------------------------------------------------------------------------------------------------------

看看struct sockaddr_storage的定义在哪个头文件

-------------------------------------------------------------------------

$ grep -rn"struct sockaddr_storage" /usr/local/include/

/usr/local/include/upnp/upnp.h:632:  struct sockaddr_storage CtrlPtIPAddr;

/usr/local/include/upnp/upnp.h:679:  struct sockaddr_storage CtrlPtIPAddr;

/usr/local/include/upnp/upnp.h:759:     struct sockaddr_storage DestAddr;

-------------------------------------------------------------------------

这里看到的都不是它的定义

找了很久还是没有发现它的定义,翻墙google一下:

http://askubuntu.com/questions/224154/help-with-error-struct-sockaddr-storage-has-no-member-named-s-addr

还有这个:

http://ubuntu.aspcode.net/view/635400140124705175347694/help-with-error-struct-sockaddrstorage-has-no-member-named-saddr

还是乖乖把libupnp换成1.4.2版本吧。。。

时间: 2024-08-11 07:49:46

ushare编译之 ‘struct sockaddr_storage’ has no member named ‘s_addr’的相关文章

Solve error: 'class vtkImageActor' has no member named 'SetInput'

Replacement of SetInput() with SetInputData() and SetInputConnection() someFilter->SetInput(someReader->GetOutput()); // Outdated // Replace to the following: someFilter->SetInputConnection(someReader->GetOutputPort()); someFilter->SetInput

安装Stomp扩展时错误提示error: 'zend_class_entry' has no member named 'default_properties'

在安装stomp扩展时, 有这样的提示 error: 'zend_class_entry' has no member named 'default_properties' 交待下安装上下文, stomp 版本是 1.0.3 而最新的是 1.0.8  php 版本是5.4.x , 猜想可能是由于版本差异造成的, 因为1.0.3的 stomp 出现的年份是2010年... 于是网上搜索了一下, 文章点这 说在出错的文件中把 default_properties 改成 default_propert

caffe make error: class google::protobuf::RepeatedField<unsigned int> has no member named 'UnsafeMergeFrom'

之前caffe中protobuf的版本是2.5.0,可在ternimal下执行:protoc --version 查看当前protobuf版本. 由于另外安装了Tensorflow之后,默认对protobuf版本进行了更新,变成3.1.0.于是在caffe中make的时候出现错误,错误提示如下: 将protobuf版本降低为2.5.0后即可解决问题. ... 后续考虑是否可以对caffe进行对应''升级'',使得满足protobuf新版本的问题. caffe make error: class

No member named 'setResizeMode' in 'QHeaderView' - Convert Qt 4.7 to Qt 5.8

https://stackoverflow.com/questions/42743141/no-member-named-setresizemode-in-qheaderview-convert-qt-4-7-to-qt-5-8 7down voteaccepted I guess you need to replace two obsolete lines: table->verticalHeader()->setResizeMode(QHeaderView::ResizeToContent

Spark wordcount 编译错误 -- reduceByKey is not a member of RDD

Attempting to run http://spark.apache.org/docs/latest/quick-start.html#a-standalone-app-in-scala from source. This line val wordCounts = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_+_) reports compile valu

Ubuntu 编译安装 Linux 4.0.5 内核,并修复 vmware 网络内核模块编译错误

. . . . . 今天把 Ubuntu 14.04 升级到了最新的 4.0.5 的内核版本,本来不打算记录下来的,但是升级的过程中确实遇到了一些问题,所以还是记录下来,分享给遇到同样问题的猿友. 先去官网下载最新的内核压缩包:https://www.kernel.org/ 网速不给力,只能用虚拟机里的迅雷下载,然后再拷贝出来. LZ 把源码包拷贝到 /usr/src 下面,直接就在这里编译安装了: # 切换到 root 身份 >$ su # 解压缩源码,得到文件夹 /usr/src/linux

于Linux-2.6.32内核上编译ipset-6.23的坎坷经历

新版本的ipset 上周在儿童医院给小小看病等待叫号的间隙,收到了Netfilter邮件列表的推送消息,一览了ipset最新的6.23版本的新特性,很多正是我目前所需要的,特别是timeout和skbinfo参数的支持,具体的详情请自行查看manual,如果不想看那么多,我这里简单的贴一下:    timeout       All  set  types  supports the optional timeout parameter when creating a set and addin

编译和安装shibboleth-sp遇到的问题

In file included from mod_shib_20.cpp:68: mod_shib.cpp:118: warning: deprecated conversion from string constant to 'char*' mod_shib.cpp: In member function 'virtual const char* ShibTargetApache::getScheme() const': mod_shib.cpp:385: error: 'ap_http_m

用NDK编译lua库

Android.mk是这样的 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := lua LOCAL_SRC_FILES := lua.cpp MY_FILES := $(wildcard $(LOCAL_PATH)/lua/*.c) MY_FILES := $(MY_FILES:$(LOCAL_PATH)/%=%) LOCAL_SRC_FILES += $(MY_FILES) # includes LOCAL_C