gpt4 book ai didi

android-ndk - 如何为 AArch64(使用 NDK)交叉编译 FFTW3?

转载 作者:行者123 更新时间:2023-12-04 18:06:03 42 4
gpt4 key购买 nike

我关注了this blog我确实成功地为 ARM v7-A 交叉编译了 FFTW3。然而,当涉及到AArch64时,我总是在C编译器检查中失败。

running CONFIG_SHELL=/bin/bash /bin/bash ./configure --disable-shared

--enable-maintainer-mode --host=arm-eabi --enable-single --enable-neon host_alias=arm-eabi CC=arm-linux-androideabi-gcc -O2 -march=armv7-a -mfpu=neon -mfloat-abi=softfp --sysroot=$NDK_ROOT/platforms/android-L/arch-arm/ -fPIE -pie -lm --no-create --no-recursion configure: WARNING: if you wanted to set the --build type, don't use --host.

If a cross compiler is detected then cross compile mode will be used checking for a BSD-compatible install... /usr/bin/install -c

checking whether build environment is sane... yes checking for

arm-eabi-strip... arm-linux-androideabi-strip checking for a

thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk

checking whether make sets $(MAKE)... yes checking whether to enable

maintainer-specific portions of Makefiles... yes checking build system

type... x86_64-unknown-linux-gnu checking host system type...

arm-unknown-eabi checking for arm-eabi-gcc...

arm-linux-androideabi-gcc -O2 -march=armv7-a -mfpu=neon

-mfloat-abi=softfp --sysroot=$NDK_ROOT/platforms/android-L/arch-arm/ -fPIE -pie -lm checking whether the C compiler works... no configure: error: in `$FFTW_ROOT': configure: error: C compiler cannot create

executables

为什么它检查 CC=arm-linux-androideabi-gcc 而不是我设置的 $CC?是因为我误解了配置中的 --host 标志吗?我将它设置为 --host=aarch64

最佳答案

FFTW3 bug 25可以通过向配置脚本调用添加命令行参数来解决:

./configure .... NEON_CFLAGS=-D__ARM_NEON__

这是因为检查 -mfpu=neon 的条件仅当 NEON_CFLAGS 不为空时,然后代码期望 __ARM_NEON__设置。

也就是说,还有其他阻碍因素,因为根本没有可用的 Aarch64 SIMD 支持代码。所以,直到有,在 aarch64 模式下编译 FFTW3 是徒劳的 ;)

关于android-ndk - 如何为 AArch64(使用 NDK)交叉编译 FFTW3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26644610/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com