+ -
当前位置:首页 → 问答吧 → 编译dbus的错误,大家给诊断下,是不是缺那个库没装

编译dbus的错误,大家给诊断下,是不是缺那个库没装

时间:2008-10-25

来源:互联网

dbus-sysdeps-unix.c: In function '_dbus_read_credentials_unix_socket':
dbus-sysdeps-unix.c:1002: error: storage size of 'cr' isn't known
dbus-sysdeps-unix.c:1005: warning: pointer targets in passing argument 5 of 'getsockopt' differ in signedness
dbus-sysdeps-unix.c:1002: warning: unused variable 'cr'
dbus-sysdeps-unix.c: In function 'split_paths_and_append':
dbus-sysdeps-unix.c:2597: warning: passing argument 1 of '_dbus_string_init_const' discards qualifiers from pointer target type
dbus-sysdeps-unix.c: In function '_dbus_get_standard_session_servicedirs':
dbus-sysdeps-unix.c:2766: warning: passing argument 1 of '_dbus_string_init_const' discards qualifiers from pointer target type
make[3]: *** [dbus-sysdeps-unix.lo] 错误 1
make[3]: Leaving directory `/root/Desktop/download/dbus-1.0.3/dbus'
make[2]: *** [all] 错误 2
make[2]: Leaving directory `/root/Desktop/download/dbus-1.0.3/dbus'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/root/Desktop/download/dbus-1.0.3'
make: *** [all] 错误 2

作者: qdog988   发布时间: 2008-10-25

兄弟们,给诊断一下阿,那个dbus还是比较重要的阿,

作者: qdog988   发布时间: 2008-10-25

不会把,兄弟们,这个怎么搞阿,快要沉了阿,给个建议阿,这个影响xfce的编译阿
高手快点来吧

作者: qdog988   发布时间: 2008-10-26

那个cr是一个struct

_dbus_verbose ("read credentials byte\n");

{
#ifdef SO_PEERCRED
struct ucred cr;
int cr_len = sizeof (cr);

if (getsockopt (client_fd, SOL_SOCKET, SO_PEERCRED, &cr, &cr_len) == 0 &&
cr_len == sizeof (cr))
{
credentials->pid = cr.pid;
credentials->uid = cr.uid;
credentials->gid = cr.gid;
}
else
{
_dbus_verbose ("Failed to getsockopt() credentials, returned len %d/%d: %s\n",
cr_len, (int) sizeof (cr), _dbus_strerror (errno));
}

作者: qdog988   发布时间: 2008-10-26

那个库包含了ucred.h这个头文件阿

作者: qdog988   发布时间: 2008-10-26

引自 http://www.linuxfromscratch.org/blfs...eral/dbus.html
引用:
D-BUS Dependencies
Required

expat-2.0.1 or both pkg-config-0.22 and libxml2-2.6.31
依赖都满足了吗?

作者: d00m3d   发布时间: 2008-10-26

满足了,我后来把那个
#ifdef SO_PEERCRED
struct ucred cr;
int cr_len = sizeof (cr);

if (getsockopt (client_fd, SOL_SOCKET, SO_PEERCRED, &cr, &cr_len) == 0 &&
cr_len == sizeof (cr))
{
credentials->pid = cr.pid;
credentials->uid = cr.uid;
credentials->gid = cr.gid;
}
else
{
_dbus_verbose ("Failed to getsockopt() credentials, returned len %d/%d: %s\n",
cr_len, (int) sizeof (cr), _dbus_strerror (errno));

#endif
给删除了,编译可以通过
我查那个SO_PEERCRED,没有定义过,不知为什么还是执行编译了,不明白的地方,我删除后可以编译通过

作者: qdog988   发布时间: 2008-10-26

而且也一直没有找到那个ucred.h头文件,查看config.h时,也没有定义

作者: qdog988   发布时间: 2008-10-26