关于一个奇怪的错误arm-linux-gnueabihf-ld: cannot find start.o

目录

前言

错误特点

错误原因


前言

这是在正点原子编译自己写的文件时出现的错误,错误现象很奇怪,就是找不到这个start.o文件。

arm-linux-gnueabihf-ld -Timx6ull.lds -o ledc.elf obj/start.o obj/main.o obj/bsp_clk.o obj/bsp_led.o obj/bsp_delay.o
arm-linux-gnueabihf-ld: cannot find start.o
make: *** [Makefile:39:ledc.bin] 错误 1

错误特点

1 .文件确实存在,可以通过在终端和Makefile中加入指令查到。

2.如果把指令运行到obj文件夹(imx6ull.lds放到obj文件夹)里可以运行完成,但是拿出来放到代码根目录就是不行。

3.根据Ai的建议,改写了Makefile文件中的相对路径变为绝对路径不行。

4.根据Ai的建议,查看了交叉编译的指向问题,错误提示,确实有点问题,但是AI解答不出。

错误原因

最后发现了与路径无关,也与交叉编译器无光,错误原因为imx6ull.lds文件错误

SECTIONS{
  . = 0x87800000;
  .text :
  {
    start.o
    
    *(.text)
  }
  .rodata ALIGN(4) : {*(.rodata*)}
  .data ALIGN(4) : {*(.data)}
    __bss_start=.;
  .bss ALIGN(4) : {*(.bss) *(COMMON)}
    __bss_end=.;
}

在.text段内start.o改为obj/start.o,但是实际上根据AI的解答,lds文件应该只影响编译后的运行,但是现在的实际情况就是在编译过程中找不到start.o文件,具体原因不清楚

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值