c# 如何删 debugging 误:没有链接的'i'的重新声明[已关闭]

gj3fmq9x  于 2023-06-20  发布在  C#
关注(0)|答案(1)|浏览(261)

**关闭。**此题需要debugging details。目前不接受答复。

编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将帮助其他人回答这个问题。
4小时前关闭
Improve this question
嗨,我得到下面的错误时,编译我的内核

/drivers/kernelsu/core_hook.c: In function ‘setup_groups’:
../drivers/kernelsu/core_hook.c:70:18: error: redeclaration of ‘i’ with no linkage
   70 |         for (int i = 0; i < ngroups; i++) {
      |                  ^
../drivers/kernelsu/core_hook.c:69:9: note: previous declaration of ‘i’ with type ‘int’
   69 |     int i;
      |         ^
../drivers/kernelsu/core_hook.c:70:9: error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode
   70 |         for (int i = 0; i < ngroups; i++) {
      |         ^~~
../drivers/kernelsu/core_hook.c:70:9: note: use option ‘-std=c99’, ‘-std=gnu99’, ‘-std=c11’ or ‘-std=gnu11’ to compile your code

这是我得到错误的代码

for (int i = 0; i < ngroups; i++) {
        gid_t gid = profile->groups[i];

请提供解决方案

8mmmxcuj

8mmmxcuj1#

您应该将编译器标志-std=c11添加到构建脚本中,或者在确保编译器支持C11之后将其传递给编译器。

相关问题