我正在更新一个 debian 软件包,我需要调用一个外部构建依赖项,它实际上是一个工具链。它没有 deb 包,所以我无法提供Build-Depends
.我选择将其包含在源存档中,然后调用ndk-build
它,然后调用各种工具,例如arm-linux-androideabi-gcc
驻留在toolchains
捆绑包内的文件夹中的工具。
当我在中引用此内容时,debian/rules: override_dh_auto_build-arch
我正在使用$(CURDIR)
它解析为/build/pkgname-1.0
.它在运行时成功fakeroot debian/rules build
,但当我使用 运行整个过程时则失败pdebuild
。构建 for 时得到以下输出i386
:
make[1]: Entering directory '/build/pkgname-1.0'
NDK_PROJECT_PATH=/build/pkgname-1.0/android/ /build/pkgname-1.0/android-ndk-r12/ndk-build
make[2]: Entering directory '/build/pkgname-1.0'
[armeabi-v7a] Compile thumb : dpfp <= dpfp.c
make[2]: /build/pkgname-1.0/android-ndk-r12/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: Command not found
/build/pkgname-1.0/android-ndk-r12/build/core/build-binary.mk:472: recipe for target '/build/pkgname-1.0/android//obj/local/armeabi-v7a/objs/dpfp/__/__/examples/dpfp.o' failed
make[2]: *** [/build/pkgname-1.0/android//obj/local/armeabi-v7a/objs/dpfp/__/__/examples/dpfp.o] Error 127
make[2]: Leaving directory '/build/pkgname-1.0'
这是chroot
路径问题吗?这些文件肯定存在于我在故障排除时添加的文件夹中ls -R
,我可以看到:
/build/pkgname-1.0/android-ndk-r12/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86/bin:
arm-linux-androideabi-gcc
我尝试将文件夹添加到PATH
、调用sh ndk-build
、显式地将捆绑包文件夹移动到$(CURDIR)
但似乎没有任何效果。
答案1
不知道输入是否正确,或者只是 Stackexchange 代码中的错误。
您输入了 2 个文件,并说它们是同一个文件。
/build/pkgname-1.0/android-ndk-r12/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc
和
/build/pkgname-1.0/android-ndk-r12/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86/bin:arm-linux-androideabi-gcc
它有一个/
之后.../bin
,还有另一个:
还要查看文件的权限。
答案2
您需要升级,pbuilder
并且debootstrap
根据pbuilder 用户手册
经常会发生 pbuilder 无法创建最新的 chroot 的情况。尝试升级 pbuilder 和 debootstrap。目前只能创建处理过去的软件。未来预测是一项功能,可以在我们熟悉过去之后添加。
有些人偶尔会将 debootstrap 移植到稳定版本;寻找他们。
当 debootstrap 阶段出现错误时,需要修复 debootstrap 脚本。 pbuilder 不提供解决 debootstrap 的方法。