问题描述
当我通过ndk20 clang与官方自述文件交叉编译valgrind时,出现以下错误。 步: (1)
export NDKROOT=/data/Env/DevEnv/NDK/android-ndk-r20
(2)
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)
./autogen.sh
(4)
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
然后我遇到了错误:
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
但是我可以交叉编译像这样的简单代码:
$ 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)
make -j4
错误:
../include/pub_tool_libcsetjmp.h:53:10: fatal error: 'setjmp.h' file not found
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)