免费注册 查看新帖 |

Chinaunix

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

交叉编译DBUS成功, 但是编译测试程序时通不过!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-23 15:03 |只看该作者 |倒序浏览
我前2天交叉编译dbus成功了
现在编译一个简单的测试程序, 好不容易把dbus动态链接库的问题解决了, 现在又报个莫名其妙的错误:

/home/songys/gcc-4.0.2-glibc-2.3.5/arm-unknown-linux-gnu/bin/../lib/gcc/arm-unknown-linux-gnu/4.0.2/../../../../arm-unknown-linux-gnu/lib/crt1.o: In function `_start':
init.c.text+0x30): undefined reference to `main'
collect2: ld returned 1 exit status

/gcc-4.0.2-glibc-2.3.5/arm-unknown-linux-gnu/bin/ 放的是我的arm交叉编译工具链,
我用的*-gcc命令是: 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  test.c -o test.o

有没有大虾帮忙看下啊!!!很着急55555555

测试程序如下
/*test.c*/
#include <dbus/dbus.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

#include <dlfcn.h>

DBusError       err;
DBusConnection  *mainConn;
DBusConnection  *secConn;
DBusConnection  *subConn;
DBusConnection  *thrdConn;

void subBlock()
{
        printf("\nget dbus connection in sub function...................\n";

    //(1)

    subConn = dbus_bus_get(DBUS_BUS_SESSION, &err);

    //(2)

    //subConn = dbus_bus_get_private(DBUS_BUS_SESSION, &err);

    if (dbus_error_is_set(&err))
    {
        fprintf(stderr, "Connection Error (%s)\n", err.message);

        dbus_error_free(&err);
    }

    if (NULL == subConn)
    {
        fprintf(stderr, "subConn point to NULL\n";

        exit(1);
    }

    if (mainConn == subConn)
    {
        printf("mainConn and subConn are homo connection.    unique name : %s\n", dbus_bus_get_unique_name(mainConn));
    }
    else
    {
        printf("\nmainConn and subConn are different connection\n";
        printf("mainConn's unique name : %s\n", dbus_bus_get_unique_name(mainConn));
        printf("secConn's unique name : %s\n", dbus_bus_get_unique_name(subConn));
    }


        if (secConn == subConn){

                printf("secConn and subConn are homo connections.    unique name : %s\n", dbus_bus_get_unique_name(secConn));

        }

        else{

                printf("\nsecConn and subConn are different connection\n";

                printf("secConn's unique name : %s\n", dbus_bus_get_unique_name(secConn));

                printf("subConn's unique name : %s\n", dbus_bus_get_unique_name(subConn));

        }


}


void* thrdBlock(void *vargs){


        printf("\nget dbus connection in thread function...........................\n";

        //(1)

        thrdConn = dbus_bus_get(DBUS_BUS_SESSION, &err);

        //(2)

        //thrdConn = dbus_bus_get_private(DBUS_BUS_SESSION, &err);

        if (dbus_error_is_set(&err)){

                fprintf(stderr, "Connection Error (%s)\n", err.message);

                dbus_error_free(&err);

        }

        if (NULL == thrdConn){

                fprintf(stderr, "thredConn point to NULL\n";

                exit(1);

        }


        if (mainConn == thrdConn){

                printf("mainConn and thrdConn are homo connection.     unique name : %s\n", dbus_bus_get_unique_name(mainConn));

        }

        else{

                printf("\nmainConn and thrdConn are different connection.\n";

                printf("mainConn's uniquename : %s\n", dbus_bus_get_unique_name(mainConn));

                printf("thrdConn's uniquename : %s\n", dbus_bus_get_unique_name(thrdConn));

        }


        if (secConn == thrdConn){

                printf("secConn and thrdConn are homo connection.    unique name : %s\n", dbus_bus_get_unique_name(secConn));

        }

        else{

                printf("\nsecConn and thrdConn are different connection.\n";

                printf("secConn's uniquname : %s\n", dbus_bus_get_unique_name(secConn));

                printf("thrdConn's uniquename : %s\n", dbus_bus_get_unique_name(thrdConn));

        }


        if (subConn == thrdConn){

                printf("subConn and thrdConn are homo connection.     unique name : %s\n", dbus_bus_get_unique_name(subConn));

        }

        else{

                printf("\nsubConn and thrdConn are different connection.\n";

                printf("subConn's uniquename : %s\n", dbus_bus_get_unique_name(subConn));

                printf("thrdConn's uniquename : %s\n ", dbus_bus_get_unique_name(thrdConn));
        }
}


int main(int argc, char **argv){


        pthread_t thrdId;

   

        printf("\nget dbus connection in main function............................\n";   

        dbus_error_init(&err);


        //(1)

        mainConn = dbus_bus_get(DBUS_BUS_SESSION, &err);

        //(2)

        //mainConn = dbus_bus_get_private(DBUS_BUS_SESSION, &err);

        if (dbus_error_is_set(&err)){

                fprintf(stderr, "Connection Error (%s)\n", err.message);

                dbus_error_free(&err);

        }

        if (NULL == mainConn){

                fprintf(stderr, "mainConn point to Null\n");

                exit(1);

        }


        sleep(3);

        //(1)

        secConn = dbus_bus_get(DBUS_BUS_SESSION, &err);

        //(2)

        //secConn = dbus_bus_get_private(DBUS_BUS_SESSION, &err);

        if (dbus_error_is_set(&err)){

                fprintf(stderr, "Connection Error (%s)\n", err.message);

                dbus_error_free(&err);

        }

        if (NULL == secConn){

                fprintf(stderr, "secConn point to NULL\n");

                exit(1);

        }


        if (mainConn == secConn){

                printf("mainConn and secConn are homo connection.    unique name : %s\n", dbus_bus_get_unique_name(mainConn));

        }

        else{

                printf("\nmainConn and secConn are different connection\n");

                printf("mainConn's unique name : %s\n", dbus_bus_get_unique_name(mainConn));

                printf("secConn's unique name : %s\n", dbus_bus_get_unique_name(secConn));

        }


        subBlock();

        pthread_create(&thrdId, NULL, thrdBlock, NULL);

        pthread_join(thrdId, NULL);


}

[ 本帖最后由 klutercoco 于 2009-6-23 15:07 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-06-24 15:48 |只看该作者
问题已经解决了, 编译通过, 测试程序也跑起来了
正在跑一个收发消息的测试程序, 不知道怎么办哦.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP