构建内核; WSL2;错误:初始化元素不是常量

时间:2021-07-12 07:36:35

标签: compiler-errors linux-kernel wsl-2 initializer

我正在尝试使用本教程在 Ubuntu-18.04 WSL2构建内核https://www.frakkingsweet.com/running-pi-gen-on-wsl2/

配置一切正常。 但是在构建它时:

make KCONFIG_CONFIG=Microsoft/config-wsl.new -j4

出现这个错误:

drivers/hyperv/dxgkrnl/dxgmodule.c:422:39:错误:初始化元素不是常数 const int DXGK_VMBUS_VERSION_OFFSET = DXGK_VMBUS_CHANNEL_ID_OFFSET +

发生错误的 dxgmodule 文件是一个 C 文件文件内容:

<块引用>

419: /* vGPU VM 总线通道实例 ID */

420: const int DXGK_VMBUS_CHANNEL_ID_OFFSET = 192;

421: /* DXGK_VMBUS_INTERFACE_VERSION (u32) */

422: const int DXGK_VMBUS_VERSION_OFFSET = DXGK_VMBUS_CHANNEL_ID_OFFSET +

423: sizeof(guid_t);

如何更改代码,以便编译器将初始化表达式读取为常量?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

我改成

419: /* vGPU VM 总线通道实例 ID */

420: const int DXGK_VMBUS_CHANNEL_ID_OFFSET = 192;

421: /* DXGK_VMBUS_INTERFACE_VERSION (u32) */

422: const int DXGK_VMBUS_VERSION_OFFSET = 192 +

423: sizeof(guid_t);

相关问题