我正在为ARM设备编写裸机应用程序(没有操作系统)。 我需要32位枚举,因此我使用-fno-short-enums
编译器标志编译应用程序。 如果没有这个标志,我会得到变量枚举(通过为每个枚举添加额外的0xFFFFFFFF
值来强制设置大小不是选项)。
现在我对每个对象都得到以下链接器警告:
c:/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/bin/ld.exe: warning: ./src/test.o uses 32-bit enums yet the output is to use variable-size enums; use of enum values across objects may fail
这只是一个警告,没有错误。但它确切地意味着什么?我该如何指定“输出”?
我尝试使用上述标志重新编译newlib,以确保所有对象使用相同的枚举大小,但我仍然收到警告。我错过了什么吗?