首页 > 其他分享 >non constant or forward reference address expression for section .ARM.extab 错误解决

non constant or forward reference address expression for section .ARM.extab 错误解决

时间:2024-03-25 11:55:25浏览次数:18  
标签:non constant reference elf Test001 STM32F103RET6 obj CMakeFiles dir

编译时报错:

FAILED: STM32F103RET6_Test001.elf 
cmd.exe /C "cd . && D:\ProgramFiles\gcc-arm-none-eabi\bin\arm-none-eabi-gcc.exe -g -Wl,-gc-sections,--print-memory-usage,-Map=D:/ProjectCode/CLion/test/STM32F103RET6_Test001/cmake-build-debug-arm-stm32/STM32F103RET6_Test001.map -mcpu=cortex-m3 -mthumb -mthumb-interwork -T D:/ProjectCode/CLion/test/STM32F103RET6_Test001/STM32F103RETX_FLASH.ld CMakeFiles/STM32F103RET6_Test001.elf.dir/Core/Src/gpio.c.obj CMakeFiles/STM32F103RET6_Test001.elf.dir/Core/Src/main.c.obj CMakeFiles/STM32F103RET6_Test001.elf.dir/Core/Src/stm32f1xx_hal_msp.c.obj CMakeFiles/STM32F103RET6_Test001.elf.dir/Core/Src/stm32f1xx_it.c.obj CMakeFiles/STM32F103RET6_Test001.elf.dir/Core/Src/syscalls.c.obj CMakeFiles/STM32F103RET6_Test001.elf.dir/Core/Src/sysmem.c.obj CMakeFiles/STM32F103RET6_Test001.elf.dir/Core/Src/system_stm32f1xx.c.obj CMakeFiles/STM32F103RET6_Test001.elf.dir/Core/Startup/startup_stm32f103retx.s.obj CMakeFiles/STM32F103RET6_Test001.elf.dir/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c.obj CMakeFiles/STM32F103RET6_Test001.elf.dir/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c.obj CMakeFiles/STM32F103RET6_Test001.elf.dir/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c.obj CMakeFiles/STM32F103RET6_Test001.elf.dir/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c.obj CMakeFiles/STM32F103RET6_Test001.elf.dir/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c.obj CMakeFiles/STM32F103RET6_Test001.elf.dir/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c.obj CMakeFiles/STM32F103RET6_Test001.elf.dir/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c.obj CMakeFiles/STM32F103RET6_Test001.elf.dir/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c.obj CMakeFiles/STM32F103RET6_Test001.elf.dir/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c.obj CMakeFiles/STM32F103RET6_Test001.elf.dir/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c.obj CMakeFiles/STM32F103RET6_Test001.elf.dir/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c.obj CMakeFiles/STM32F103RET6_Test001.elf.dir/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c.obj CMakeFiles/STM32F103RET6_Test001.elf.dir/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c.obj -o STM32F103RET6_Test001.elf   && cmd.exe /C "cd /D D:\ProjectCode\CLion\test\STM32F103RET6_Test001\cmake-build-debug-arm-stm32 && arm-none-eabi-objcopy -Oihex D:/ProjectCode/CLion/test/STM32F103RET6_Test001/cmake-build-debug-arm-stm32/STM32F103RET6_Test001.elf D:/ProjectCode/CLion/test/STM32F103RET6_Test001/cmake-build-debug-arm-stm32/STM32F103RET6_Test001.hex && arm-none-eabi-objcopy -Obinary D:/ProjectCode/CLion/test/STM32F103RET6_Test001/cmake-build-debug-arm-stm32/STM32F103RET6_Test001.elf D:/ProjectCode/CLion/test/STM32F103RET6_Test001/cmake-build-debug-arm-stm32/STM32F103RET6_Test001.bin""
d:/programfiles/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe:D:/ProjectCode/CLion/test/STM32F103RET6_Test001/STM32F103RETX_FLASH.ld:88: non constant or forward reference address expression for section .ARM.extab
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

原因:
最新的 STM32CubeMx 生成的 .ld 文件中含有 READONLY 关键字,此关键字只能在 gcc 11 版本及以后使用,gcc 10及以下版本解析不了报错。(在后面生成的注释中也有说明)

解决方法:
打开 .ld 文件,删除所有 (READONLY) 字段
image

修改后:
image

标签:non,constant,reference,elf,Test001,STM32F103RET6,obj,CMakeFiles,dir
From: https://www.cnblogs.com/XuYuFan/p/18094079

相关文章

  • centos7 Packstack allinone安装openstack
    centos7Packstackallinone安装openstackPackstack是一种用于自动化部署OpenStack环境的工具,它可以快速安装和配置OpenStack的各个组件,同时提供了一些默认设置以方便快速上手。All-in-One模式是Packstack的一种安装模式,它在一台物理或虚拟机上部署了所有OpenStack的核心组件,包......
  • 【Azure Policy】使用Azure Policy来检查Azure资源名称是否满足正确要求(不满足就拒绝
    问题描述使用AzurePolicy来检查Azure资源名称是否满足正确要求,如果不满足就拒绝创建或标记为不合规non-compliance在创建Azure上资源的时候,有如下需求:1)资源的名称必须以一个前缀开头,如prod,test等。2)资源的名称结尾处必须是一个数字,如0,1,2,3,4,5,6,7,8,9。3)如果不合规,则拒绝新......
  • 340_依赖循环引用Relying upon circular references is discouraged and they are pro
    报错信息15:21:53.398[main]ERRORo.s.b.d.LoggingFailureAnalysisReporter-[report,40]-***************************APPLICATIONFAILEDTOSTART***************************Description:Thedependenciesofsomeofthebeansintheapplicationcontextf......
  • Druid连接池问题:discard long time none received connection.
    啊啊啊啊啊啊啊~~~我真的服了找bug找到发疯百度也找不到,gpt也问不到,最后就是我重新打开视频看着敲了一遍,最后发现......我**忘记加注解了(......
  • GCDAsyncSocket_Reference
    原文:https://github.com/robbiehanson/CocoaAsyncSocket/wiki/Reference_GCDAsyncSocketGCDAsyncSocket是基于GrandCentralDispatch构建的TCP套接字网络库。该项目还包含一个基于RunLoop的版本,以及UDP套接字库。CocoaAsyncSocket项目是一个成熟的开源框架,自2003......
  • RunOnWeb - 创建新协议,支持html调用本地可执行文件,支持浏览器互相调用
     浏览器调用exe?  Yes! 谷歌Chrome启动微软Edge?   Yes!RunOnWeb协议 创建新协议,支持html调用本地可执行文件,支持浏览器互相调用 【最新版本】:Ver1.0.0【更新日期】:2024.3.15【作者】:阿色【下载】点击下载RunOnWeb协议安装程序及源文件:https://......
  • json总结 fastjson和jackson 以及typereference(未写完)
    fastjson跟JackJson有很大区别,为了防止搞混,这里进行总结因为会涉及到流水线的门禁,所以这里给出比较优质的解决方案 两个测试类代码如下:@DatapublicclassStudent{privateStringname;privateIntegerage;privateTeacherteacher;}@Datapubl......
  • 《Distributed_Storage_Codes_With_Repair-by-Transfer_and_Nonachievability_of_Inte
    论文5个部分,本篇主要是针对3-14日组会中,懂和不懂的地方进行记录。论文部分:①RAID(待补充)②DC(datacollector)数据收集器+重建节点所有的这些系统,最基本的是要保证“DC”功能,也就是数据收集;在这个基础上,再保证,假如某节点出问题,能否修复;再研究,怎么修复代价最小,代价又分很多,有修......
  • C#try捕捉不了NullReferenceException
    用debug运行以下代码出现空指针错误double[]EnergyScaleValue=newdouble[3];try{EnergyScaleValue=null;}catch(NullReferenceExceptionee){MessageBox.Show("请先选择样品!");......
  • forward reference in python
    ForwardReferenceinpythonThereisacodesnippetlike:@propertydefanalyses(self)->"AnalysesHubWithDefault":result=self._analysesifresultisNone:raiseValueError("Cannotaccessanalysesthisearlyinproject......