Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将openjdk 11u交叉编译到Android设备_Java_Android_Android Ndk_Cross Compiling - Fatal编程技术网

Java 将openjdk 11u交叉编译到Android设备

Java 将openjdk 11u交叉编译到Android设备,java,android,android-ndk,cross-compiling,Java,Android,Android Ndk,Cross Compiling,我正在尝试将openjdk 11u交叉编译到android。我正在使用以下命令: CC=aarch64-linux-android21-clang CXX=aarch64-linux-android21-clang++ bash configure --openjdk-target=aarch64-linux-android21 --with-toolchain-path=/mnt/d/ubuntu/NDK/build/tools/toolchain --with-sysroot=/mnt/d/

我正在尝试将openjdk 11u交叉编译到android。我正在使用以下命令:

CC=aarch64-linux-android21-clang CXX=aarch64-linux-android21-clang++ bash configure --openjdk-target=aarch64-linux-android21 --with-toolchain-path=/mnt/d/ubuntu/NDK/build/tools/toolchain --with-sysroot=/mnt/d/ubuntu/NDK/build/tools/toolchain/sysroot  --disable-warnings-as-errors
但我得到的输出错误如下:

正在检查CC的已解析符号链接。。。无符号链接配置:C 编译器(位于 /mnt/d/ubuntu/NDK/build/tools/toolchain/bin/aarch64-linux-android21-clang) 似乎不是必需的gcc编译器。配置:结果 使用--version was运行时出现以下错误:配置:错误:gcc编译器 是必需的。尝试设置--使用工具目录。使用配置退出 结果代码1

但是如果我使用

/mnt/d/ubuntu/NDK/build/tools/toolchain/bin/aarch64-linux-android21-clang --version
输出为:

Android(基于r365631c2的6454773)clang版本9.0.8 ( 98c855489587874b2a325e7a516b99d838599c6f)(基于LLVM 9.0.8svn) 目标:AARC64-unknown-linux-android21线程型号:posix InstalledDir:/mnt/d/ubuntu/NDK/build/tools/toolschain/bin

如果您阅读,很明显,clang不是一个gcc编译器

但是,当您查看源代码树(例如..../jdk11/make/autoconf/toolchain.m4)时,有明显的迹象表明可以使用铿锵的工具链来构建JVM。问题似乎是m4宏不理解android作为目标平台,并且似乎已经退回到尝试使用gcc的阶段

请注意,Java 11构建说明如下所示:

叮当声

clang的最低可接受版本为3.2。旧版本将不会 被
configure
接受

要在Linux上使用clang而不是gcc,请使用
——使用工具链类型=clang


话虽如此,我并不认为通过简单的交叉编译就可以让OpenJDKJava11在Android上运行

有一个OpenJDK项目,用于将Java移植到位于。。。他们似乎在Java9上停滞不前。这对我来说意味着,要在Android上实现一个工作正常的OpenJDKJava11,还有很多工作要做。您可能希望与该项目以及可能仍在进行该项目的任何人取得联系