在嵌入式linux开发过程中,进行编译,报错如下
src/util/Vector.c:94:9: error: ‘for’ loop initial declarations are only allowed in C99 mode
for (int j = V->length++; j > i; j--)
^
src/util/Vector.c:94:9: note: use option -std=c99 or -std=gnu99 to compile your code
src/util/Vector.c: In function ‘Vector_remove’:
src/util/Vector.c:123:9: error: ‘for’ loop initial declarations are only allowed in C99 mode
for (int j = i; j < V->length; j++)
^
二、问题分析
gcc编译,是基于低于C99标准编译的。在低于c99的标准中, for循环内定义变量是不允许的。
三、解决方案 方法一修改代码
int j;
for (j = i; j < V->length; j++)
方法二
gcc指定使用c99标准进行编译
gcc -std=c99
方法三
在Makefile中指定使用c99标准进行编译
CFLAGS += -std=c99
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)