当前位置:首页 > 后端开发 > 正文内容

处理Windows中文用户名导致的Dart AOT编译失利问题

邻居的猫1个月前 (12-09)后端开发1930

Windows中文用户名导致的Dart AOT编译失利

 
我的微软账户一向运用中文用户名,Windows会把这个用户名作为用户文件夹的称号,并且很难修正. 这就导致但凡放在这个途径下的文件都得有一个带中文的绝对途径. Dart 编译时或许由于这儿的中文字符而犯错.
 

问题呈现时的操作体系及Dart SDK版别


体系 Windows11 22H2 家庭中文版
Dart SDK version=3.1.3 (stable) (Tue Sep 26 14:25:13 2023 +0000) on "windows_x64"
table { margin: auto }

 

问题的产生进程


  1. 我编写了一个简略的Dart HelloWorld程序source.dart, 像这样:

    翻开代码
    import 'dart:io';
    

    void main()
    {
    print('Hello World!');
    var input = stdin.readLineSync(); //输入一串字符, 再输出
    stdout.writeln('input: $input');
    }


     

  2. 在文件管理器中, 翻开这个source.dart文件地点文件夹, 然后右键翻开PowerShell窗口. 输入指令:

    dart compile exe source.dart
    

    这是Dart官方文档规则的生成exe文件的编译办法.

  3. PowerShell窗口提示:

    Error: Unable to read file: C:\Users\某中文用户名\AppData\Local\Temp\83da944d\kernel.dill
    ../../runtime/vm/dart_api_impl.cc: 2290: error: Dart_ExitScope expects there to be a current isolate. 
        Did you forget to call Dart_CreateIsolateGroup or Dart_EnterIsolate?
    
    ...其他信息...
    
    Error: AOT compilation failed
    Generating AOT snapshot failed!
    

榜首行的信息指出,无法读取用户临时文件夹途径下的某个文件.
 

估测的原因及处理办法


  • 原因

    Dart编译进程中需求读写体系的用户临时文件夹, 并且好像不允许这个临时文件夹途径中有中文字符.
    Windows11默许的用户临时文件夹途径是

    %USERPROFILE%\AppData\Local\Temp    //这儿%USERPROFILE%指的是用户文件夹途径
    

     

    可以在 设置→体系→体系信息→高档体系设置→环境变量→用户变量 检查 TEMP 和 TMP 项目途径. 我的中文用户名就呈现在这儿.

     

  • 处理办法

    从头指定一个不含中文字符的途径作为临时文件夹,保存到体系环境变量里面. 首要新建一个文件夹,例如

    C:\UserTemp      //纷歧定是这个途径, 可以指定为其他途径
    

    把上述 TEMP 和 TMP 项目都修正为这一途径,然后保存.
     

  • 测验

    到程序源文件方位从头翻开PowerShell窗口, 输入

    dart compile exe source.dart
    

    随后提示

    Generated: 当时途径\source.exe
    

    在文件管理器中可以看到预期的exe文件的确已生成. 翻开此文件, 呈现下面的窗口

    阐明此exe文件可以正常履行,问题现已处理了.

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=269

分享给朋友:

“处理Windows中文用户名导致的Dart AOT编译失利问题” 的相关文章

Reviewbot 开源 | 为什么咱们要打造自己的代码检查服务?

Reviewbot 开源 | 为什么咱们要打造自己的代码检查服务?

Reviewbot 是七牛云开源的一个项目,旨在供给一个自保管的代码查看服务, 便利做 code review/静态查看, 以及自界说工程标准的落地。 静态查看不是个新鲜事。 我记住早在几年前,咱们就调研并运用过 sonarqube 做静态查看,但其时并没有大范围的推行。首要原因在于,一是发现的问...

php文件用什么软件打开,选择合适的软件

php文件用什么软件打开,选择合适的软件

1. 文本编辑器: Notepad :一款流行的免费文本和源代码编辑器,支持多种编程语言,包括PHP。 Sublime Text:一个轻量级的文本编辑器,以其高性能和可定制性而受到欢迎。 Visual Studio Code:由Microsoft开发的一款免费源代码编辑器,功能强...

r语言apply函数,数据处理与计算的利器

`apply` 函数是 R 语言中的一个强大工具,它允许用户对矩阵或数据框的列或行应用一个函数。这个函数特别适用于需要对矩阵或数据框的每一列或每一行进行相同的操作,比如计算每一列或每一行的平均值、标准差、最大值、最小值等。 基本语法`apply` `X`: 一个矩阵或数据框。 `MARGIN`: 应...

python处理excel,从入门到精通

python处理excel,从入门到精通

当然可以。Python中有几个库可以用来处理Excel文件,其中最常用的是`openpyxl`和`pandas`。下面我会简单介绍一下如何使用这两个库来读取和写入Excel文件。 使用 `openpyxl``openpyxl` 是一个用于读写Excel 2010 xlsx/xlsm/xltx/xlt...

php换行代码, PHP中的换行符

php换行代码, PHP中的换行符

在PHP中,你可以使用不同的方法来换行,具体取决于你的输出目标。以下是几种常见的情况: ```php echo 这是第一行这是第二行; ```2. 在命令行中输出换行: 如果你在命令行界面中输出,可以使用``或`r`(取决于你的操作系统,Windows通常使用`r`,而Linux和m...

beat maker go,什么是Beat Maker Go?

beat maker go,什么是Beat Maker Go?

Beat Maker Go是一款终极的鼓垫控制应用程序,适合音乐爱好者和专业音乐制作人。以下是关于该应用程序的一些详细信息: 功能特点1. 丰富的声音包:提供200多种声音包,包括EDM、HipHop、Trap、Dubstep、DrumnBass和Rave等多种音乐风格。2. 高品质样本:样本由职业...