使用GraalVM构建本机应用程序时缺少cl.exe

时间:2020-10-04 16:49:05

标签: graalvm graalvm-native-image cl.exe

我正在尝试使用GraalVM和本机映像构建本机应用程序。开始构建过程时发生错误。看来cl.exe在类路径中丢失了。就像在GraalVM网站上提到的那样,我已经安装了“ GRMSDKX_EN_DVD.iso”(适用于Windows 7和.NET的Windows SDK)。我还尝试安装Windows 10的Windows SDK。

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community>native-image -jar C:\Users\tm\Desktop\DemoGraalVM\target\Demo-1.0-SNAPSHOT.jar
[Demo-1.0-SNAPSHOT:28776]    classlist:   2,435.83 ms,  1.16 GB
[Demo-1.0-SNAPSHOT:28776]        setup:     646.59 ms,  1.16 GB
Error: Default native-compiler executable 'cl.exe' not found via environment variable PATH
Error: To prevent native-toolchain checking provide command-line option -H:-CheckToolchain
Error: Use -H:+ReportExceptionStackTraces to print stacktrace of underlying exception
Error: Image build request failed with exit status 1

我正在使用Windows 10 graalvm-ce-java8-windows-amd64-20.2.0。我还在运行Visual Studio社区版,并使用Visual Studio 2019开发人员命令提示符v16.3.1。 Java应用程序是使用Maven在IntelliJ Community Edition中构建的。

我该如何解决?在哪里下载cl.exe或哪个安装程序包包含此文件?

2 个答案:

答案 0 :(得分:2)

对不起,您遇到了麻烦;希望我们可以将其迅速消除!
您似乎缺少一些依赖项,所以我会尽力为您解决问题。


要在Windows上构建本机GraalVM映像,您需要 Microsoft Visual C ++(MSVC)。所需的版本取决于您的GraalVM发行版所基于的JDK版本。

  • 对于使用Java 8的GraalVM发行版,您需要 MSVC 2010 SP1

    推荐的安装方法是使用Microsoft Windows SDK 7.1:

    1. 从Microsoft下载SDK文件GRMSDKX_EN_DVD.iso
    2. 直接打开F:\Setup\SDKSetup.exe来安装图像。

    根据GraalVM本机图像参考,您可以通过Window SDK 7.1 image from Microsoft

    轻松获得它。
  • 对于使用Java 11的GraalVM发行版,您需要 MSVC 2017 15.5.5 或更高版本
    除非您已经在工作流程中使用其他版本,否则我将绝对建议仅使用最新版本(当前为2019)。您可以here获得它。


一旦安装了Visual Studio,所有构建命令都应通过本地工具命令提示符运行。
如果在安装Visual Studio时保留默认的“开始菜单”快捷方式,则可以从以下位置进行访问:
Start -> Visual Studio 2019 -> Tools -> x64 Native Tools Command Prompt


鉴于您的代码井井有条,使用适当的工具链将解决您的问题。如果出现任何其他问题,建议您为他们提出另一个问题;祝您项目顺利!

答案 1 :(得分:1)

您需要为 Microsoft Visual C ++ 设置环境。

我正在使用Visual Studio 2017,因此我必须使用: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsx86_amd64.bat