Dbus的编译和安装

下载地址为http://permalink.gmane.org/gmane.comp.freedesktop.dbus/15992


error: cannot run C compiled programs

echo ac_cv_have_abstract_sockets=yes>arm-linux.cache

./configure --prefix=/wsh_space/my_install/usr/lib --host=arm --build=arm-linux  CC="arm-cortex_a9-linux-gnueabi-gcc -L/wsh_space/my_install/usr/lib/lib -I/wsh_space/my_install/usr/lib/include" --cache-file=arm-linux.cache --with-x=no --libdir=/wsh_space/my_install/usr/lib/lib --includedir=/wsh_space/my_install/usr/lib/include

./configure --prefix=/wsh_space/my_install/usr/lib --host=arm --build=arm-linux  CC="arm-cortex_a9-linux-gnueabi-gcc -L/wsh_space/my_install/usr/lib/lib -I/wsh_space/my_install/usr/lib/include" --cache-file=arm-linux.cache --disable-tests

libtool: link: cannot find the library `/opt/crosstools/arm-cortex_a9-eabi-4.7-eglibc-2.18/arm-cortex_a9-linux-gnueabi/sysroot/usr/lib/libffi.la' or unhandled argument `/opt/crosstools/arm-cortex_a9-eabi-4.7-eglibc-2.18/arm-cortex_a9-linux-gnueabi/sysroot/usr/lib/libffi.la'



./configure --prefix=/wsh_space/my_install/usr/lib --host=arm --build=arm-cortex_a9-linux-gnueabi CC="arm-cortex_a9-linux-gnueabi-gcc -L/wsh_space/my_install/usr/lib/lib/dbus-1.0 -I/wsh_space/my_install/usr/lib/include/dbus-1.0" --libdir=/wsh_space/my_install/usr/lib/lib --includedir=/wsh_space/my_install/usr/lib/include --enable-library


./configure --prefix=/wsh_space/my_install/usr/lib --host=arm --build=arm-cortex_a9-linux-gnueabi CC="arm-cortex_a9-linux-gnueabi-gcc " --libdir=/wsh_space/my_install/usr/lib/lib --includedir=/wsh_space/my_install/usr/lib/include --enable-library


./configure --prefix=/wsh_space/my_install/usr1/ --host=arm --build=arm-cortex_a9-linux-gnueabi CC="arm-cortex_a9-linux-gnueabi-gcc " 



libtool: link: cannot find the library `/opt/crosstools/arm-cortex_a9-eabi-4.7-eglibc-2.18/arm-cortex_a9-linux-gnueabi/sysroot/usr/lib/libpcre.la' or unhandled argument `/opt/crosstools/arm-cortex_a9-eabi-4.7-eglibc-2.18/arm-cortex_a9-linux-gnueabi/sysroot/usr/lib/libpcre.la'



lib :

./configure --prefix=/wsh_space/my_install/usr/lib --host=arm --build=arm-linux CC=arm-cortex_a9-linux-gnueabi-gcc 

GLIB2.28:

./configure --prefix=/wsh_space/my_install/usr/lib --host=arm --cache-file=arm-linux.cache CC="arm-cortex_a9-linux-gnueabi-gcc -L/wsh_space/my_install/usr/lib/lib -I/wsh_space/my_install/usr/lib/include" CFLAGS=-fPIC

./configure --prefix=/wsh_space/my_install/usr/lib/lib --host=arm --build=arm-cortex_a9-linux-gnueabi CC="arm-cortex_a9-linux-gnueabi-gcc -L/wsh_space/my_install/usr/lib/lib/pkgconfig -I/wsh_space/my_install/usr/lib/include" --disable-audio

<think>好的,我现在需要帮助用户解决在交叉编译环境下安装配置DBus的问题。首先,我要回忆一下交叉编译的基本概念,以及DBus的相关知识。交叉编译通常涉及在一个平台(比如x86的Ubuntu)上编译代码,使其在另一个平台(如ARM)上运行。这可能涉及到工具链的设置、依赖库的交叉编译以及环境变量的配置。 用户提供的引用内容中提到了几个关键点:引用4提到了在交叉编译DBus时使用的配置选项,如--host--prefix,还有指定CC编译器。引用25提到了环境变量的设置,比如PKG_CONFIG_PATHLD_LIBRARY_PATH,这些对于库的查找链接很重要。引用31虽然不直接相关,但可能涉及其他依赖库的配置。 首先,我需要确定DBus交叉编译的基本步骤。通常流程是:准备交叉编译工具链,交叉编译依赖库(如expat),配置DBus编译选项,处理可能的路径环境变量问题,最后进行编译安装。此外,可能还需要在目标平台上进行配置,比如生成必要的系统文件。 接下来,我需要检查用户提供的引用内容是否有遗漏或需要注意的地方。例如,引用4提到--host选项可能会有警告,但可能还是需要正确设置目标架构。同时,用户可能需要处理pkg-config的路径,如引用5中的PKG_CONFIG_PATH设置,确保编译时能找到正确的库。 可能的难点在于环境变量的正确配置,包括编译器路径、库路径等。此外,依赖项如expat需要先交叉编译,并确保DBus配置时能找到它们。另外,DBus在目标平台上的运行时配置,比如机器ID生成启动脚本,也是需要注意的地方。 用户的问题还可能涉及测试验证安装是否正确,比如在目标平台上运行DBus守护进程,检查服务是否正常。此外,交叉编译过程中可能会遇到头文件或库文件缺失的问题,需要确保所有依赖项都已正确编译安装到目标路径中。 总结步骤大致如下: 1. 准备交叉编译工具链环境变量。 2. 交叉编译依赖库,如expat。 3. 配置DBus的交叉编译参数,指定主机类型、安装路径、编译器。 4. 处理环境变量,如PKG_CONFIG_PATH、LD_LIBRARY_PATH。 5. 编译安装DBus。 6. 在目标系统上部署配置DBus,生成必要文件。 7. 验证安装是否成功。 需要确保每一步都正确执行,尤其是路径编译选项的正确性。此外,可能还需要参考DBus官方文档或社区资源解决特定问题,比如配置错误或依赖问题。</think>### 交叉编译环境下安装配置DBus的步骤 #### 1. **准备交叉编译工具链** - 确保已安装目标平台(如ARM)的交叉编译工具链(例如`arm-linux-gnueabihf-gcc`),并设置环境变量: ```bash export CC=arm-linux-gnueabihf-gcc export CXX=arm-linux-gnueabihf-g++ ``` - 工具链路径需加入`PATH`: ```bash export PATH=/path/to/toolchain/bin:$PATH ``` #### 2. **交叉编译依赖项** - **expat库**(DBus依赖的XML解析库)需先交叉编译: ```bash ./configure --host=arm-linux-gnueabihf --prefix=/path/to/expat/install make && make install ``` - 设置`PKG_CONFIG_PATH`指向依赖库的`.pc`文件: ```bash export PKG_CONFIG_PATH=/path/to/expat/install/lib/pkgconfig:$PKG_CONFIG_PATH [^5] ``` #### 3. **配置DBus的交叉编译** - 解压DBus源码后进入目录,执行配置命令: ```bash ./configure \ --host=arm-linux-gnueabihf \ --prefix=/path/to/dbus/install \ --with-sysroot=/path/to/target/sysroot \ CC=arm-linux-gnueabihf-gcc \ CXX=arm-linux-gnueabihf-g++ ``` - `--host`指定目标平台架构[^4] - `--prefix`为安装路径(需绝对路径) - `--with-sysroot`指定目标系统的根文件系统(可选) #### 4. **编译安装** ```bash make && make install ``` - 若出现链接错误,检查`LD_LIBRARY_PATH`是否包含依赖库路径: ```bash export LD_LIBRARY_PATH=/path/to/expat/install/lib:$LD_LIBRARY_PATH [^2] ``` #### 5. **目标系统部署** - 将安装目录(`/path/to/dbus/install`)下的文件拷贝到目标系统。 - **生成机器ID**(DBus必需): ```bash dbus-uuidgen > /var/lib/dbus/machine-id ``` - 配置启动脚本,确保`dbus-daemon`在目标系统启动时运行。 #### 6. **验证** - 在目标平台上运行: ```bash dbus-daemon --version ``` - 测试DBus通信功能,例如发送一条消息。 --- ### 常见问题解决 - **编译警告或失败**:检查`--host`是否与工具链匹配,或尝试添加`--disable-static --enable-shared`[^4]。 - **库未找到**:确认`PKG_CONFIG_PATH``LD_LIBRARY_PATH`包含所有依赖库路径[^2][^5]。 - **权限问题**:目标系统的`/var/lib/dbus`目录需可写入。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值