Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.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 错误:无法编译C-ABI查询代码。确保系统上安装了本机软件开发工具链_Java_Glibc_Quarkus - Fatal编程技术网

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

Java 错误:无法编译C-ABI查询代码。确保系统上安装了本机软件开发工具链,java,glibc,quarkus,Java,Glibc,Quarkus,我最近开始阅读有关Quarkus的内容,并遵循他们的文档构建本机可执行文件,但遇到了先决条件中的第二步: 安装了JDK 8,并适当配置了JAVA_HOME 一个可工作的C开发环境 GraalVM版本19.3.1已正确安装和配置 工作容器运行时(Docker、podman) 工作的C开发环境,请查看链接中的文档 我使用的是windows计算机,我了解在其上设置环境的复杂性,根据我在互联网上的阅读,我安装了GCC以及glibc和zlib头。 经过一个痛苦的过程后,我能够安装GCC,但因为

我最近开始阅读有关Quarkus的内容,并遵循他们的文档构建本机可执行文件,但遇到了先决条件中的第二步:

  • 安装了JDK 8,并适当配置了JAVA_HOME

  • 一个可工作的C开发环境

  • GraalVM版本19.3.1已正确安装和配置

  • 工作容器运行时(Docker、podman)

    工作的C开发环境
    ,请查看链接中的文档

我使用的是windows计算机,我了解在其上设置环境的复杂性,根据我在互联网上的阅读,我安装了
GCC以及glibc和zlib头。
经过一个痛苦的过程后,我能够安装
GCC
,但因为我不熟悉
glibc
zlib
安装过程,我现在有点卡住了,这是我尝试运行
/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
[getting-started-1.0-SNAPSHOT-runner:22928]设置:539.69毫秒,1.50 GB
错误:无法编译C-ABI查询代码。确保系统上安装了本机软件开发工具链。
com.oracle.svm.core.util.UserError$UserException:无法编译C-ABI查询代码。确保系统上安装了本机软件开发工具链。
在com.oracle.svm.core.util.UserError.abort(UserError.java:79)上
位于com.oracle.svm.hosted.c.codegen.CCompilerInvoker.compileAndParseError(CCompilerInvoker.java:103)
位于com.oracle.svm.hosted.c.CAnnotationProcessor.compileQueryCode(CAnnotationProcessor.java:131)
位于com.oracle.svm.hosted.c.CAnnotationProcessor.process(CAnnotationProcessor.java:84)
位于com.oracle.svm.hosted.c.NativeLibraries.finish(NativeLibraries.java:387)
位于com.oracle.svm.hosted.NativeImageGenerator.processNativeLibraryImports(NativeImageGenerator.java:1514)
位于com.oracle.svm.hosted.NativeImageGenerator.setupNativeLibraries(NativeImageGenerator.java:1010)
位于com.oracle.svm.hosted.NativeImageGenerator.setupNativeImage(NativeImageGenerator.java:841)
位于com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:528)
位于com.oracle.svm.hosted.NativeImageGenerator.lambda$run$0(NativeImageGenerator.java:445)
位于java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1386)
位于java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
位于java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
位于java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
在java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)处
原因:java.io.IOException:无法运行程序“CL”(在目录“C:\Users\xxxx\AppData\Local\Temp\SVM-xxxx”中):CreateProcess error=2,系统找不到指定的文件
位于java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
位于com.oracle.svm.hosted.c.codegen.CCompilerInvoker.startCommand(CCompilerInvoker.java:158)
位于com.oracle.svm.hosted.c.codegen.CCompilerInvoker.startCompiler(CCompilerInvoker.java:140)
位于com.oracle.svm.hosted.c.codegen.CCompilerInvoker.compileAndParseError(CCompilerInvoker.java:71)
... 还有13个
原因:java.io.IOException:CreateProcess error=2,系统找不到指定的文件
在java.lang.ProcessImpl.create(本机方法)
位于java.lang.ProcessImpl。(ProcessImpl.java:444)
在java.lang.ProcessImpl.start(ProcessImpl.java:139)
位于java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 还有16个
错误:映像生成请求失败,退出状态为1
[信息]------------------------------------------------------------------------
[信息]生成失败
[信息]------------------------------------------------------------------------
[信息]总时间:14.150秒
[信息]完成时间:2020-03-16T09:56:56-05:00

首先,如果您在Windows上构建,最好将GraalVM 20与Quarkus 1.3.0.Final一起使用,因为他们在GraalVM 20中修复了很多东西。我们上周发布了Core,因此如果您使用
quarkus bom
而不是
quarkus universe bom
,您已经可以使用它了。否则,最早将于周四发布完整版本

接下来,我们有人在这里提供一些关于如何在Windows上构建GraalVM本机可执行文件的注释:

您能看一下这些注释,测试它们并在PR中提供反馈(无论它们是否有效)?

我能够运行“针对VC2017的x86本机Ttool命令提示符”,并通过了本机工具链错误


但现在我有一个链接器错误。问题输入。

到目前为止,我正在使用
quarkus宇宙bom
。根据我的理解,您建议使用
quarkus bom
?我使用GraalVM 20和quarkus 1.3.0.Final,并将pom文件更新为使用
quarkus bom
,但我仍然得到相同的错误。您是否遵循了我提到的PR中的说明?我遵循了说明,但是得到了同样的结果@Guillaume Smeta经过几天与Windows机器的斗争,我放弃了它,转而使用Ubuntu,我在Windows机器上安装了VirtualBox并安装了Ubuntu映像,安装过程非常顺利,我安装了Java、maven、curl、GraalVM、Spring、C环境等等。。。像小菜一碟一样从命令行下载。在与Windows机器斗争了几天之后,我放弃了它,转而使用Ubuntu,我在Windows机器上安装了VirtualBox并安装了Ubuntu映像,安装过程非常顺利,我像小菜一碟一样从命令行安装了Java、maven、curl、GraalVM、Spring、C environment等。