Ошибка: не удается скомпилировать код запроса C -ABI. Убедитесь, что в вашей системе установлен нативный набор инструментов для разработки программного обеспечения. - PullRequest
2 голосов
/ 16 марта 2020

Я недавно начал читать о Quarkus и следовал за их документацией к СОЗДАНИЮ NATIVE EXECUTABLE, но застрял со вторым шагом в предварительных условиях:

  • JDK 8, установленный с JAVA_HOME, настроенным соответствующим образом
  • Рабочая C среда разработки
  • GraalVM версии 19.3.1 установлена ​​и настроена соответствующим образом
  • Рабочая среда рабочего контейнера (Docker, podman)

    A working C development environment, ознакомьтесь с документацией по ссылке https://quarkus.io/guides/building-native-image

Я использую windows машину и понимаю сложность настройки среда на нем, согласно тому, что я прочитал в inte rnet, я установил GCC, and the glibc and zlib headers. Я смог установить 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

Ответы [ 2 ]

2 голосов
/ 16 марта 2020

Во-первых, если вы используете Windows, лучше используйте GraalVM 20 с Quarkus 1.3.0.Final, поскольку в GraalVM 20 они исправили многие проблемы. Мы выпустили Core на прошлой неделе, так что если вы вместо этого используете quarkus-bom из quarkus-universe-bom, вы уже можете использовать его. В противном случае, полный релиз выйдет уже в четверг.

Затем у нас есть кто-то, кто готовит несколько заметок о том, как создавать собственные исполняемые файлы GraalVM на Windows здесь: https://github.com/quarkusio/quarkus/pull/7871/files .

Не могли бы вы взглянуть на эти заметки, протестировать их и предоставить обратную связь в PR (будь то, работают они или нет)?

0 голосов
/ 09 апреля 2020

Мне удалось запустить «Командную строку x86 Native Ttool для VC2017», и я получил ошибку родной цепочки инструментов.

Но теперь у меня ошибка компоновщика. Вопрос входящий.

...