Electron builder失败:否';对象';生成的文件

Electron builder失败:否';对象';生成的文件,electron,v8,electron-builder,keyboard-layout,Electron,V8,Electron Builder,Keyboard Layout,自从升级到electron 10.1.2以来,我对electron builder有一个问题。我的构建现在在重建键盘布局时失败。重建仅在Windows而不是Mac上失败。我不知道从哪里开始这个问题,所以我在这里问:) 我的设置: 角度:9.0.7 电子:10.1.2 电子生成器:22.8.x 当我将electron从9.0.0更新到10.1.2时,问题就开始了。其他一切都没有改变 问题: 使用命令调用electron-builder.cmd--x64-p always-w重建键盘布局时被

自从升级到electron 10.1.2以来,我对electron builder有一个问题。我的构建现在在重建
键盘布局时失败。重建仅在Windows而不是Mac上失败。我不知道从哪里开始这个问题,所以我在这里问:)


我的设置:

  • 角度:9.0.7
  • 电子:10.1.2
  • 电子生成器:22.8.x
当我将electron9.0.0更新到10.1.2时,问题就开始了。其他一切都没有改变


问题:
使用命令调用
electron-builder.cmd--x64-p always-w
重建
键盘布局时
被称为以下步骤之一:

> keyboard-layout@2.0.16 install C:\Users\<me>\<dir1>\<dir2>\dist\node_modules\keyboard-layout
> node-gyp rebuild

我尝试过的有帮助的方法:
Electron 10.x.y将v8更新为8.5(),并查看导致错误的行(
..\.Electron gyp\10.1.2\include\node\v8.h(5378)
),我看到以下内容:

 static constexpr size_t kMaxLength =
      internal::kApiSystemPointerSize == 4
          ? internal::kSmiMaxValue
          : static_cast<size_t>(uint64_t{1} << 32); <--- Line 5378
如果I chnage
static_cast(uint64_t{1}
我所做的尝试没有帮助:

'WarnAsError':'false'
应该可以解决这个问题;但是报告了两个不同文件的错误(
。\src\keyboard layout manager.cc
。\src\keyboard layout manager windows.cc
),因此您必须修改这两个文件的生成规则

禁用警告也会有帮助,但必须禁用的是警告4309(而不是2220)。同样,您必须对两个文件(或整个编译)都这样做

旧的和新的行在理论上不一样吗?一个移位32位的结果是
0xffffff

否,
1
我所做的尝试没有帮助:

'WarnAsError':'false'
应该可以解决这个问题;但是报告了两个不同文件的错误(
。\src\keyboard layout manager.cc
。\src\keyboard layout manager windows.cc
),因此您必须修改这两个文件的生成规则

禁用警告也会有帮助,但必须禁用的是警告4309(而不是2220)。同样,您必须对两个文件(或整个编译)都这样做

旧的和新的行在理论上不一样吗?一个移位32位的结果是
0xffffff


不,
1谢谢您的详细解释。您是对的,
'WarnAsError':'false'
确实有帮助,当我更改它时,它被其他一些命令运行过:S。还有一个问题。如果我禁用警告,模块是否仍能正确生成,或者我是否只是消除一个问题?它应该正确生成--否则您将有一个相当大的问题您手上有严重的编译器错误,这些非常罕见:-)谢谢您的详细解释。你是对的,
'WarnAsError':'false'
确实有帮助,当我更改它时,它被其他命令运行了:S。还有一个问题。若我禁用了警告,模块是否仍能正确构建,或者我是否能消除一个问题?它应该正确构建——否则您将面临一个相当严重的编译器错误,而这是非常罕见的:-)
['OS=="win"', {
         "sources": [
           "src/keyboard-layout-manager-windows.cc",
         ],
         'msvs_settings': {
           'VCCLCompilerTool': {
             'ExceptionHandling': 1, # /EHsc
             'WarnAsError': 'false', # <--- I chnaged this from true to false
           },
         },
         'msvs_disabled_warnings': [
           4018,  # signed/unsigned mismatch
           2220,  # <--- I added this
           4244,  # conversion from 'type1' to 'type2', possible loss of data
           4267,  # conversion from 'size_t' to 'type', possible loss of data
           4302,  # 'type cast': truncation from 'HKL' to 'UINT'
           4311,  # 'type cast': pointer truncation from 'HKL' to 'UINT'
           4530,  # C++ exception handler used, but unwind semantics are not enabled
           4506,  # no definition for inline function
           4577,  # 'noexcept' used with no exception handling mode specified
           4996,  # function was declared deprecated
         ],
       }],  # OS=="win"
 static constexpr size_t kMaxLength =
      internal::kApiSystemPointerSize == 4
          ? internal::kSmiMaxValue
          : static_cast<size_t>(uint64_t{1} << 32); <--- Line 5378
  static constexpr size_t kMaxLength = internal::kApiSystemPointerSize == 4
                                           ? internal::kSmiMaxValue
                                           : 0xFFFFFFFF;