免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2274 | 回复: 0
打印 上一主题 下一主题

交叉编译DBus测试程序 及测试程序运行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-25 09:44 |只看该作者 |倒序浏览
上个礼拜六将DBus交叉编译成功, 这个礼拜主要是将测试程序在开发板上跑起来.
1. 交叉编译源文件, 例如test.c 编译过程中主要有2个问题, 1个是header file, 1个是dbus动态库的引用.
写一个Makefile解决
例如:
#Makefile
CC=arm-unknown-linux-gnu-gcc
CFLAGS=-Wall -g -shared #compiler args
#include header file
CFLAGS += -I/home/songys/dbus/lib/include \
  -I/home/songys/dbus/lib/include/glib-2.0 \
  -I/home/songys/dbus/lib/lib/glib-2.0/include \
  -I/home/songys/dbus/lib/include/dbus-1.0 \
  -I/home/songys/dbus/lib/lib/dbus-1.0/include \
#link .so dynamic lib
LDFLAGS:=-lpthread -L/home/songys/dbus/lib/lib -ldbus-1
SRCDIRS=.
PROGRAMS=test
SRCS=$(foreach dir,$(SRCDIRS),$(wildcard $(dir)/*.c))
OBJS=$(SRCS:.c=.o)
DEPENDS=$(SRCS:.c)
all: $(PROGRAM)
%.d:%.c
  $(CC) $(DEPENDFLAG) $(CFLAGS) \
  sed "s?\\(.*\\):?$(basename $ $@ || $(RM) $@
$(PROGRAMS): $(OBJS)
  $(CC) $(LDFLAGS) -o $@ $(filter %.o ,$+)
include $(DEPENDS)
clean:
  rm $(OBJS) $(DEPENDS) $(PROGRAMS)

或者: arm-unknown-linux-gnu-gcc -I/home/songys/dbus/lib/include/dbus-1.0/
                                -I/home/songys/dbus/lib/include
                                -I/home/songys/dbus/lib/include/glib-2.0
                                -I/home/songys/dbus/lib/lib/glib-2.0/include
                                -I/home/songys/dbus/lib/lib/dbus-1.0/include
                                -L/home/songys/dbus/lib/lib -ldbus-1  
                                eg2.c -o eg2

make test生成一个arm-linux可执行文件test.

2. 将/lib /bin及test拷贝到NFS的rootfs, 启动开发板

3. 转帖
http://hi.baidu.com/lihuanhai1943/blog/item/00ef57faf02907dab58f3113.html
在开发板上运行命令:
# dbus-dameon --system
Failed to start message bus: Failed to open "/usr/local/etc/dbus-1/system.conf":
No such file or directory
于是我又到dbus-1.0.2中找了个system.conf
# dbus-dameon --system
Failed to start message bus: Failed to open :".....system.d" No such file or directory
于是响应目录下建了个system.d文件夹
# dbus-dameon --system
Failed to start message bus: Failed to bind socket "/var/run/dbus/system_bus_soc ket
No such file or directory
自己就硬着头皮建一个system_bus_soc ket,结果
# dbus-dameon --system
Failed to start message bus: Failed to bind socket "/var/run/dbus/system_bus_soc ket:Address already in use
郁闷,删掉system_bus_soc ket,只留/var/run/dbus/
# dbus-dameon --system
Failed to start message bus:Could not get UID and GID for username "messagebus"
网上让用/usr/sbin/adduser messagebus,奶奶的开发板上没有这个命令,难道在编译busy-box,还是算了吧,麻烦,忽然看到网上说可以用添加文件的方式添加用户,/etc/passwd下,在pc linux下用一下/usr/sbin/adduser messagebus,发现就在/etc/passwd下,添加了一行messagebus:x:500:500::/home/messagebus:/bin/bash,看开发板上,只是有个root,于是复制进去,root后/bin/sh,所以为了保持一致,也改为messagebus:x:500:500::/home/messagebus:/bin/sh
passwd内容如下:
root::0:0:root:/:/bin/sh
bin:*:1:1:bin:/bin:
daemon:*:2:2:daemon:/sbin:
nobody:*:99:99:Nobody:/:
messagebus:x:500:500::/home/messagebus:/bin/sh
# dbus-dameon --system
哈哈,该死的错误没了,高兴
4. dbus-daemon --system --print-pid --print-address
   rm /home/songys/dbus/lib/var/run/dbus/pid
   dbus-launch --sh-syntax --exit-with-session
dbus-launch /tmp/test
测试程序运行成功, 但是2个session互发消息的测试还没有调试出来5555555


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/99283/showart_1976658.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP