armcc出现Cannot obtain license for Compiler (feature compiler) with license vension >= 3.1:Feature has

执行armcc出现下面的问题:

 

解决办法:将C:\Program Files\ARM rvds.dat中的时间修改一下。将所有的2020替换为2021。再将rvds.dat文件添加到Licenses中即可

 

<think>嗯,用户遇到了ARM Compiler 5.06 update 7的ArmCC工具报错问题,需要解决。首先,我得想一下ArmCC的常见错误类型和处理方法。用户可能遇到的错误包括语法错误、链接器问题、优化选项冲突,或者许可证问题。 首先,语法错误可能是因为使用了C11或更高版本的标准,而ArmCC 5.06可能不支持。这时候需要检查编译选项,比如使用--c99而不是-std=c11。然后,链接器错误可能和分散加载文件(scatter file)有关,或者库文件路径不对,需要确认文件是否存在,路径是否正确。 优化选项方面,如果用户启用了高级优化比如-O3,可能会导致编译错误,这时候可以尝试降低优化等级,比如用-O1或-O0调试。许可证错误的话,用户需要检查环境变量ARM_LICENSE_DIR是否设置正确,或者许可证文件是否过期,可能需要更新许可证。 另外,内存分配错误可能是因为堆栈设置过小,调整启动文件或分散加载文件中的堆栈大小可能有帮助。还有可能是编译器本身的bug,这时候需要查看ARM的官方文档或更新到最新补丁版本。用户应该先检查错误信息的具体内容,根据错误代码搜索ARM的官方支持文档,比如ARM Compiler 5.06的指南,或者社区论坛有没有类似的问题。 然后,用户可能需要提供具体的错误信息,才能更准确地解决问题。比如,如果是错误#123,可能需要特定的解决步骤。如果问题依然存在,尝试简化代码,定位问题所在,或者联系ARM技术支持。同时,确保项目配置正确,没有混用不同版本的编译器组件。比如,检查是否同时用了ArmCC和arm-none-eabi-gcc,导致冲突。 还需要注意,ArmCC是付费软件,可能许可证问题导致编译失败,用户需要确认许可证有效。另外,确保编译工具链的路径正确,没有环境变量冲突。有时候,清理项目重新编译也能解决临时性的问题。 总结一下,解决步骤可能包括:检查错误信息,调整编译选项,验证许可证,查看官方文档,调整代码或配置,以及联系支持。用户需要根据具体的错误信息逐步排查,可能需要结合日志和文档来找到解决方案。</think>关于ARM Compiler 5.06 update 7的ArmCC报错问题,以下是分步骤解决方案: ### 一、常见错误类型与解决方法 1. **语法兼容性问题** - 现象:`#error: invalid compiler version` - 原因:使用了C11/C++14等新标准语法 - 解决方法: ```makefile CFLAGS += --c99 # 强制使用C99标准 ``` 2. **链接器报错** - 现象:`L6235E: No matching section` - 检查分散加载文件(scatter file)中地址区间是否重叠,示例如下: ```scatter ROM 0x00000000 0x10000 { *.o (RESET, +First) .ANY (+RO) } ``` 3. **优化选项冲突** - 现象:`Error: #2478E` - 禁用冲突优化: ```bash armcc -O1 -Otime # 替代-O3或-Omax ``` 4. **许可证错误** - 现象:`FLEXlm error: -15,570` - 设置许可证路径: ```bash export ARM_LICENSE_DIR=/opt/arm/licenses ``` ### 二、工具链验证步骤 1. 基础环境检查 ```bash armcc --vsn # 应显示"ARM Compiler 5.06 update 7 (build 960)" ``` 2. 最小测试程序验证 ```c void main() { __asm volatile ("nop"); // 检查内联汇编支持 } ``` ### 三、已知问题与补丁 根据ARM官方文档[^1],该版本存在以下已知问题: - **VFP寄存器覆盖问题**(修复补丁:PK456) - **LTO链接优化缺陷**(需禁用`--split_ldm`选项) ### 四、调试建议 1. 启用详细编译日志: ```bash armcc --remarks --debug --depend=build.d ``` 2. 内存分配检查: ```scatter ARM_LIB_STACK 0x20000000 EMPTY 0x800 {} ARM_LIB_HEAP 0x20008000 EMPTY 0x800 {} ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值