嗨,我正在尝试在KeilμVisionv.5.12上构建程序。
错误似乎只是“一个”(期望]
)。但是代码可以在我的Linux分区上正常工作(编译且运行时不会出现err/警告)。
Rebuild target 'Target 1'
compiling ax.c...
ax.c: Warning: C3910W: Old syntax, please use '--c99'.
23_2\fixvector3d.h(30): warning: #1-D: last line of file ends without a newline
#endif
23_2\fixquat.h(73): warning: #1-D: last line of file ends without a newline
#endif
23_2\fixstring.h(21): warning: #1-D: last line of file ends without a newline
#endif
23_2\ax.c(46): error: #17: expected a "]"
mf16 Adew = {DIM, DIM, 0, {{[0 ... DIM-1] = fix16_from_int(0)},
23_2\ax.c(47): error: #17: expected a "]"
{[0 ... DIM- 1] = fix16_from_int(0)},
23_2\ax.c(48): error: #17: expected a "]"
{[0 ... DIM- 1] = fix16_from_int(0)}}};
23_2\ax.c(58): error: #17: expected a "]"
mf16 sqrtD = {DIM, DIM, 0, {{[0 ... DIM-1] = fix16_from_int(0)},
23_2\ax.c(59): error: #17: expected a "]"
{[0 ... DIM- 1] = fix16_from_int(0)},
23_2\ax.c(60): error: #17: expected a "]"
{[0 ... DIM- 1] = fix16_from_int(0)}}};
23_2\ax.c(64): error: #17: expected a "]"
mf16 transE = {DIM, DIM, 0, {{[0 ... DIM-1] = fix16_from_int(0)},
23_2\ax.c(65): error: #17: expected a "]"
{[0 ... DIM- 1] = fix16_from_int(0)},
23_2\ax.c(66): error: #17: expected a "]"
{[0 ... DIM- 1] = fix16_from_int(0)}}};
23_2\ax.c(70): error: #17: expected a "]"
mf16 inv_eigenvectors = {DIM, DIM, 0, {{[0 ... DIM-1] = fix16_from_int(0)},
23_2\ax.c(71): error: #17: expected a "]"
{[0 ... DIM-1] = fix16_from_int(0)},
23_2\ax.c(72): error: #17: expected a "]"
{[0 ... DIM-1] = fix16_from_int(0)}}};
23_2\ax.c(76): error: #17: expected a "]"
mf16 eigenvectors = {DIM, DIM, 0, {{[0 ... DIM-1] = fix16_from_int(0)},
23_2\ax.c(77): error: #17: expected a "]"
{[0 ... DIM-1] = fix16_from_int(0)},
23_2\ax.c(78): error: #17: expected a "]"
{[0 ... DIM-1] = fix16_from_int(0)}}};
23_2\ax.c(82): error: #17: expected a "]"
mf16 whiteningMatrix = {DIM, DIM, 0, {{[0 ... DIM-1] = fix16_from_int(0)},
23_2\ax.c(83): error: #17: expected a "]"
{[0 ... DIM-1] = fix16_from_int(0)},
23_2\ax.c(84): error: #17: expected a "]"
{[0 ... DIM-1] = fix16_from_int(0)}}};
23_2\ax.c(88): error: #17: expected a "]"
mf16 dewhiteningMatrix = {DIM, DIM, 0, {{[0 ... DIM-1] = fix16_from_int(0)},
23_2\ax.c(89): error: #17: expected a "]"
{[0 ... DIM-1] = fix16_from_int(0)},
23_2\ax.c(90): error: #17: expected a "]"
{[0 ... DIM-1] = fix16_from_int(0)}}};
23_2\ax.c(94): error: #17: expected a "]"
mf16 Bold = {DIM, DIM, 0, {{[0 ... DIM-1] = fix16_from_int(0)},
23_2\ax.c(95): error: #17: expected a "]"
{[0 ... DIM- 1] = fix16_from_int(0)},
23_2\ax.c(96): error: #17: expected a "]"
{[0 ... DIM- 1] = fix16_from_int(0)}}};
23_2\ax.c(100): error: #17: expected a "]"
mf16 tempMatrixOne = {DIM, DIM, 0, {{[0 ... DIM-1] = fix16_from_int(0)},
23_2\ax.c(101): error: #17: expected a "]"
{[0 ... DIM-1] = fix16_from_int(0)},
23_2\ax.c(102): error: #17: expected a "]"
{[0 ... DIM-1] = fix16_from_int(0)}}};
23_2\ax.c(106): error: #17: expected a "]"
mf16 tempMatrixTwo = {DIM, DIM, 0, {{[0 ... DIM-1] = fix16_from_int(0)},
23_2\ax.c(107): error: #17: expected a "]"
{[0 ... DIM-1] = fix16_from_int(0)},
23_2\ax.c(108): error: #17: expected a "]"
{[0 ... DIM-1] = fix16_from_int(0)}}};
assembling startup_ARMCM0.s...
compiling system_ARMCM0.c...
system_ARMCM0.c: Warning: C3910W: Old syntax, please use '--c99'.
".\Objects\ax.axf" - 30 Error(s), 5 Warning(s).
**我的代码中出现错误的部分
mf16 Adew = {DIM, DIM, 0, {{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)}}};
mf16 *ptr_Adew;
ptr_Adew = &Adew;
mf16 identity = {DIM, DIM, 0, {{fix16_from_int(1),fix16_from_int(0),fix16_from_int(0)},
{fix16_from_int(0),fix16_from_int(1),fix16_from_int(0)},
{fix16_from_int(0),fix16_from_int(0),fix16_from_int(1)}}};
mf16 *ptr_identity;
ptr_identity = &identity;
mf16 sqrtD = {DIM, DIM, 0, {{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)}}};
mf16 *ptr_sqrtD;
ptr_sqrtD = &sqrtD;
mf16 transE = {DIM, DIM, 0, {{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)}}};
mf16 *ptr_transE;
ptr_transE = &transE;
mf16 inv_eigenvectors = {DIM, DIM, 0, {{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)}}};
mf16 *ptr_inv_eigenvectors;
ptr_inv_eigenvectors = &inv_eigenvectors;
mf16 eigenvectors = {DIM, DIM, 0, {{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)}}};
mf16 *ptr_eigenvectors;
ptr_eigenvectors = &eigenvectors;
mf16 whiteningMatrix = {DIM, DIM, 0, {{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)}}};
mf16 *ptr_whiteningMatrix;
ptr_whiteningMatrix = &whiteningMatrix;
mf16 dewhiteningMatrix = {DIM, DIM, 0, {{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)}}};
mf16 *ptr_dewhiteningMatrix;
ptr_dewhiteningMatrix = &dewhiteningMatrix;
mf16 Bold = {DIM, DIM, 0, {{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)}}};
mf16 *ptr_Bold;
ptr_Bold = &Bold;
mf16 tempMatrixOne = {DIM, DIM, 0, {{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)}}};
mf16 *ptr_tempMatrixOne;
ptr_tempMatrixOne = &tempMatrixOne;
mf16 tempMatrixTwo = {DIM, DIM, 0, {{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)}}};
mf16 *ptr_tempMatrixTwo;
ptr_tempMatrixTwo = &tempMatrixTwo;
mf16 Btranspose = {DIM, DIM, 0, {{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)}}};
mf16 *ptr_Btranspose;
ptr_Btranspose = &Btranspose;
mf16 Bnew = {DIM, DIM, 0, {{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)},
{[0 ... DIM-1] = fix16_from_int(0)}}};
mf16 *ptr_Bnew;
ptr_Bnew = &Bnew;
我做错了什么? (我忘了设置keil项目的任何内容吗?也许是.h?还是[0 ...维]声明了我的矩阵?)
最佳答案
正如interjay放在注释中一样,您正在使用特定于gcc
的C扩展名,并且在Keil上不兼容。
从gcc
documentation:
关于c - ARM Keil错误#17预期为 “]”,C3910W : Old syntax,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28700750/