错误:无法编译C-ABI查询代码。确保系统上已安装本机软件开发工具链

问题描述 投票:1回答:2

我最近开始阅读有关Quarkus的信息,并按照他们的文档来构建NATIVE EXECUTABLE,但是在先决条件中陷入了第二步:

  • 已正确配置JAVA_HOME的JDK 8安装
  • 正在运行的C开发环境
  • 已正确安装和配置GraalVM版本19.3.1
  • 正在运行的容器运行时(Docker,podman)

    [A working C development environment,请查看链接https://quarkus.io/guides/building-native-image

    ]中的文档>
  • 我正在使用Windows机器,并且我了解在其上设置环境的复杂性,根据我在网上阅读的内容,我已经安装了GCC, and the glibc and zlib headers.经过一个痛苦的过程,我能够安装GCC,但是由于我对glibczlib的安装过程不熟悉,所以我现在有点卡住了,这是我尝试运行时遇到的错误./mvnw package -Pnative命令:

[getting-started-1.0-SNAPSHOT-runner:22928]        setup:     539.69 ms,  1.50 GB
Error: Unable to compile C-ABI query code. Make sure native software development toolchain is installed on your system.
com.oracle.svm.core.util.UserError$UserException: Unable to compile C-ABI query code. Make sure native software development toolchain is installed on your system.
        at com.oracle.svm.core.util.UserError.abort(UserError.java:79)
        at com.oracle.svm.hosted.c.codegen.CCompilerInvoker.compileAndParseError(CCompilerInvoker.java:103)
        at com.oracle.svm.hosted.c.CAnnotationProcessor.compileQueryCode(CAnnotationProcessor.java:131)
        at com.oracle.svm.hosted.c.CAnnotationProcessor.process(CAnnotationProcessor.java:84)
        at com.oracle.svm.hosted.c.NativeLibraries.finish(NativeLibraries.java:387)
        at com.oracle.svm.hosted.NativeImageGenerator.processNativeLibraryImports(NativeImageGenerator.java:1514)
        at com.oracle.svm.hosted.NativeImageGenerator.setupNativeLibraries(NativeImageGenerator.java:1010)
        at com.oracle.svm.hosted.NativeImageGenerator.setupNativeImage(NativeImageGenerator.java:841)
        at com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:528)
        at com.oracle.svm.hosted.NativeImageGenerator.lambda$run$0(NativeImageGenerator.java:445)
        at java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1386)
        at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
        at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
        at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
        at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: java.io.IOException: Cannot run program "CL" (in directory "C:\Users\xxxx\AppData\Local\Temp\SVM-xxxx"): CreateProcess error=2, The system cannot find the file specified
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
        at com.oracle.svm.hosted.c.codegen.CCompilerInvoker.startCommand(CCompilerInvoker.java:158)
        at com.oracle.svm.hosted.c.codegen.CCompilerInvoker.startCompiler(CCompilerInvoker.java:140)
        at com.oracle.svm.hosted.c.codegen.CCompilerInvoker.compileAndParseError(CCompilerInvoker.java:71)
        ... 13 more
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
        at java.lang.ProcessImpl.create(Native Method)
        at java.lang.ProcessImpl.<init>(ProcessImpl.java:444)
        at java.lang.ProcessImpl.start(ProcessImpl.java:139)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
        ... 16 more
Error: Image build request failed with exit status 1
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  14.150 s
[INFO] Finished at: 2020-03-16T09:56:56-05:00

我最近开始阅读Quarkus,并按照他们的文档来构建NATIVE EXECUTABLE,但是在先决条件中陷入了第二步:使用JAVA_HOME安装了JDK 8 ...] >>

[首先,如果您在Windows上构建,最好在Quarkus 1.3.0.Final上使用GraalVM 20,因为它们在GraalVM 20中解决了很多问题。我们上周发布了Core,因此如果您使用quarkus-bom而不是[ C0],您已经可以使用它了。否则,完整版本将最早在星期四发布。

接下来,我们有人在这里提供有关如何在Windows上构建GraalVM本机可执行文件的注释:quarkus-universe-bom。>>

您能否查看这些说明,对其进行测试并在PR中提供反馈(无论它们是否起作用)?

[在与Windows机器进行了数天的斗争之后,我放弃了,转而使用Ubuntu,我在Windows机器上安装了VirtualBox并设置了Ubuntu映像,安装过程非常顺利,我安装了Java,maven,curl,GraalVM,Spring, C环境等...从命令行轻松完成。

Internet上有很多资源支持Linux安装,如果可以选择使用其他操作系统,则可以节省时间。

java glibc quarkus
2个回答
0
投票

[首先,如果您在Windows上构建,最好在Quarkus 1.3.0.Final上使用GraalVM 20,因为它们在GraalVM 20中解决了很多问题。我们上周发布了Core,因此如果您使用quarkus-bom而不是[ C0],您已经可以使用它了。否则,完整版本将最早在星期四发布。


0
投票

[在与Windows机器进行了数天的斗争之后,我放弃了,转而使用Ubuntu,我在Windows机器上安装了VirtualBox并设置了Ubuntu映像,安装过程非常顺利,我安装了Java,maven,curl,GraalVM,Spring, C环境等...从命令行轻松完成。

Internet上有很多资源支持Linux安装,如果可以选择使用其他操作系统,则可以节省时间。

© www.soinside.com 2019 - 2024. All rights reserved.