问题描述
当我通过ndk20 clang与官方自述文件交叉编译valgrind时,出现以下错误。 步: (1)
@H_404_3@export NDKROOT=/data/Env/DevEnv/NDK/android-ndk-r20
(2)
@H_404_3@export AR=$NDKROOT/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ar export LD=$NDKROOT/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ld export CC=$NDKROOT/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android28-clang export CXX=$NDKROOT/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android28-clang++
(3)
@H_404_3@./autogen.sh
(4)
@H_404_3@CPPFLAGS="--sysroot=$NDKROOT/platforms/android-28/arch-arm64" \ CFLAGS="--sysroot=$NDKROOT/platforms/android-28/arch-arm64" \ ./configure --prefix=/data/local/Inst \ --host=aarch64-unkNown-linux --target=aarch64-unkNown-linux \ --with-tmpdir=/sdcard
然后我遇到了错误:
@H_404_3@checking for /NDK/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android28-clang option to accept ISO C99... unsupported configure: error: Valgrind relies on a C compiler supporting C99
但是我可以交叉编译像这样的简单代码:
@H_404_3@$ vim test.c $ clang -std=c99 test.c -o test $ ./test hello c99 $ export NDKROOT=/data/Env/DevEnv/NDK/android-ndk-r20 $ export CC=$NDKROOT/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android28-clang $CC -std=c99 test.c -o test $ ./test bash: ./test: cannot execute binary file: Exec format error
如果外壳代码被压缩掉了,那么下一步我会出错。
(5)
@H_404_3@make -j4
错误:
@H_404_3@../include/pub_tool_libcsetjmp.h:53:10: Fatal error: 'setjmp.h' file not found
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)