我想为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;结束 - 所以我的问题是:
有人能看到我遗失的问题吗?