当前位置: 首页 > 知识库问答 >
问题:

openjdk 11u在Android设备上的交叉编译

文凯康
2023-03-14
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编译器。configure:使用--version运行的结果是:“”configure:error:需要gcc编译器。尝试设置--with-tools-dir。使用结果代码1配置退出

但如果我用

/mnt/d/ubuntu/NDK/build/tools/toolchain/bin/aarch64-linux-android21-clang --version

输出为:

共有1个答案

茅鸿宝
2023-03-14

如果您阅读了GCC vs.clang/llvm:C/C++编译器的深入比较,很明显clang不是GCC编译器。

但是,当您查看源代码树(例如…/jdk11/make/autoconf/toolchain.m4)时,有明显的迹象表明clang工具链可以用于构建JVM。问题似乎是m4宏不理解android是一个目标平台,似乎又回到了使用GCC的尝试。

注意,Java11构建说明是这样说的:

铿锵

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

要在Linux上使用clang而不是gcc,请使用--with-toolchain-type=clang

 类似资料:
  • 我使用sshfs将目标设备的(Beaglebone Black,ARM arch)根安装到主机上的一个文件夹中,并尝试使用gcc的选项进行交叉编译。 但是有一个问题--有些include头文件不仅位于目标设备的/usr/include文件夹中,而且位于其子文件夹中。还有/usr/lib/arm-linux-gnueabihf文件夹。 “Hello World”示例编译失败 因为位于/usr/inc

  • LiteIDE 通过使用环境配置文件来支持 go 语言的交叉编译,对于 windows 和 linux 下相对简单,对于 macOS 可能会复杂一些, 本文以 macOS 交叉编译 windows-386 可执行文件为例,简要介绍如何在 LiteIDE 中配置和实现交叉编译功能。 交叉编译环境选择和配置 首先选择环境,在工具栏环境选择中选择 cross-win32 切换至 windows-386

  • 问题内容: 我正在尝试在OSX上交叉编译go应用程序,以为Windows和Linux构建二进制文件。我已经阅读了所有可以在网上找到的东西。我发现的最接近的示例已发布(除了有关go- nuts邮件列表的许多未完成的讨论之外): http://solovyov.net/en/2012/03/09/cross-compiling- go/ 但它不适用于我的安装。我去了1.0.2。由于1.0.2是最近的版

  • 我正在尝试为Android ARM交叉编译llvm/clang。 我也尝试了这里列出的所有步骤,以及在这里找到的指南,但没有运气。 任何帮助都将不胜感激。谢了! 编辑:现在我正在使用以下命令: 错误消息:CLANG36++:警告:编译过程中未使用参数:'-bundle'/users/paschalis/androide/toolchains/gcc/bin/../lib/gcc/arm-linux

  • 问题内容: 各位 我正在尝试在Ant和终端上玩Javac Cross编译。在本地和集成环境中,我在一个非常基本的问题上遇到了同样的问题。 我在linux终端(以及在Windows和cmd的cygwin上)上运行此命令: 与Main.java一起使用,仅是System.out.println。 我收到错误消息: 我在本地Windows机器上的配置大致相同,结果完全相同。 我的理解是,交叉编译就是使用

  • 我试图交叉编译一个linux系统的简单hello world程序。 我有以下资料: null 我试图运行/lib/libc.so.0来获取版本信息,但出现了一个分段错误。它似乎用-static编译解决了这个问题。所以我想这是libc库的问题。谢谢你的帮助。