用于ARM / Linux的交叉构建partprobe:配置有关libuuid

时间:2016-07-11 16:04:59

标签: c linux cross-platform

我想为ARMv7控制器交叉构建 partprobe (例如,来自[here]的parted-3.1),但不断收到有关 libuuid 和<的错误消息强> uuid_generate

实际上我只需要 partprobe ,这可能甚至不依赖于 uuid_generate 功能,但我在 configure中看不到任何选项脚本禁用任何功能。

我在使用BPS之前成功交叉构建了软件,并使用了我的发行版提供的ARM工具链(Mint 17)。

这是我迄今为止所做的尝试:

1)使用制造商的BSP

我有一个板支持包,提供库和头文件以及工具链:

/path/to/bsp/_rootfs/lib/libuuid.so.1
/path/to/bsp/_rootfs/lib/libuuid.so.1.3.0
/path/to/bsp/board-support/linux-3.2.0-psp04.06.00.11/include/linux/uuid.h
/path/to/bsp/linux-devkit/am3352/bin/

当我调用

./configure \
  --libdir=/path/to/bsp/_rootfs/lib/ \
  --includedir=/path/to/bsp/board-support/linux-3.2.0-psp04.06.00.11/include/ \
  --bindir=/path/to/bsp/linux-devkit/am3352/bin/ \
  --with-sysroot=/path/to/bsp/_rootfs \
  --host=arm-linux-gnueabihf

我收到以下错误

checking for uuid_generate in -luuid... no
configure: error: GNU Parted requires libuuid - a part of the util-linux-ng package (but
usually distributed separately in libuuid-devel, uuid-dev or similar)
This can probably be found on your distribution's CD or FTP site or at:
    http://userweb.kernel.org/~kzak/util-linux-ng/
Note: originally, libuuid was part of the e2fsprogs package.  Later, it
moved to util-linux-ng-2.16, and that package is now the preferred source.

uuid.h 和库是可用的,所以我认为 configure 脚本不应该抱怨,但错误似乎是误导性的。标题 uuid.h 可用,但不包含 uuid_generate 函数声明,而库包含此类函数(使用 nm -D 检查) )。

我不知道该如何处理... BSP是否包含标题和库的不兼容版本? 但是,busybox二进制文件包含 wget ,它似乎使用 uuid_generate ......在某些时候它必须有效。

将原来的 uuid.h 替换为 / path /至/ bsp / docs / am3352 / licenses / e2fsprogs /中的 uuid.h.in (包含 uuid_generate )仍会导致相同的错误。

2)使用Linux发行版的ARM环境

我也尝试使用我的Linux发行版提供的ARM工具链(包 gcc-arm-linux-gnueabihf libuuid1:armhf

aptitude install uuid-dev:armhf

显示与 uuid-dev 的x86包冲突,但已有:

/usr/arm-linux-gnueabi/include/linux/uuid.h
/usr/arm-linux-gnueabihf/include/linux/uuid.h
/lib/arm-linux-gnueabihf/libuuid.so.1
/lib/arm-linux-gnueabihf/libuuid.so.1.3.0

BTW:这两个头文件中没有一个包含字符串 uuid_generate ,而库则包含。

调用

./configure host=arm-linux-gnueabihf

运行没有错误,但会创建一个缺少交叉构建环境的任何信息的Makefile。

BTW:无论如何都要调用 make 并出错;尝试使用 git://git.savannah.gnu.org/parted.git 中的当前源代码进行成功配置和构建,但不涉及任何魔法:结果是x86的库/二进制文件不适用于ARM。

现在我在我的智慧&#39;结束 - 所以我的问题是:

有人能看到我遗失的问题吗?

0 个答案:

没有答案