打印
[STM32F0]

在 Project 的 Properties 上添加 Library collect2.exe: error

[复制链接]
312|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
石榴大王|  楼主 | 2025-3-19 11:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在 Project 的 Properties 上添加 Library。
在 c/C++ 标签中修改路径和各个组件。

当编译时,会出现这些错误。
cannot find lC:/Users/ckregel/STM32CubeIDE/workspace_1.0.1/SPI_Basis/SPI_Basis/Src/libargus.a
collect2.exe: error: ld returned 1 exit status
make: *** [makefile:41: SPI_Basis.elf] Error 1

使用特权

评论回复
沙发
elephant00| | 2025-3-20 12:35 | 只看该作者
检查库文件是否位于您指定的路径下。

使用特权

评论回复
板凳
两只袜子| | 2025-3-20 13:52 | 只看该作者
更新库路径。

使用特权

评论回复
地板
jcky001| | 2025-3-20 15:23 | 只看该作者
建议使用相对路径而不是绝对路径来指定库文件。

使用特权

评论回复
5
laocuo1142| | 2025-3-20 21:00 | 只看该作者
检查 Makefile 的第 41 行附近的内容,看看是否有任何与库文件路径相关的错误。

使用特权

评论回复
6
cr315| | 2025-3-20 22:00 | 只看该作者
清理并重建项目试试。

使用特权

评论回复
7
flycamelaaa| | 2025-3-20 22:00 | 只看该作者
库文件不兼容?

使用特权

评论回复
8
powerantone| | 2025-3-20 23:00 | 只看该作者
文件系统权限问题。

使用特权

评论回复
9
Wordsworth| | 2025-3-21 08:02 | 只看该作者
你有没有用 Clean Project 清理一下编译缓存?有时候 IDE 里改了路径,但 makefile 里的配置没更新,导致找不到库。

使用特权

评论回复
10
Bblythe| | 2025-3-21 08:04 | 只看该作者
如果你的 libargus.a 是自己编译的,确保编译的时候用的是正确的 ARM GCC 版本,否则可能会出现链接失败。

使用特权

评论回复
11
Pulitzer| | 2025-3-21 08:05 | 只看该作者
试试看 Verbose 模式编译,在 Project > Properties > C/C++ Build > Settings > Build Steps 里加上 VERBOSE=1,看看完整的编译命令,排查路径问题。

使用特权

评论回复
12
Uriah| | 2025-3-21 08:06 | 只看该作者
你用的是 STM32CubeIDE 默认的 Toolchain 吗?如果是自己配置的 GCC 版本,检查 Path 里是否包含正确的 binutils。

使用特权

评论回复
13
Clyde011| | 2025-3-21 08:08 | 只看该作者
collect2.exe: error: ld returned 1 exit status 说明是 ld 失败了,通常是路径错误或库文件损坏,试试用 arm-none-eabi-readelf -a libargus.a 看看库是否有效。

使用特权

评论回复
14
公羊子丹| | 2025-3-21 08:09 | 只看该作者
你的库文件路径是不是写错了?lC:/Users/.../libargus.a 这个 l 不应该手动加,试试只写 argus,然后在 Library search path 里加上 C:/Users/.../Src/。

使用特权

评论回复
15
周半梅| | 2025-3-21 08:10 | 只看该作者
在 Project > Properties > C/C++ Build > Settings > Tool Settings > MCU GCC Linker > Libraries 里,Libraries (-l) 里填 argus,然后 Library search path (-L) 里填 C:/Users/.../Src/。

使用特权

评论回复
16
帛灿灿| | 2025-3-21 08:11 | 只看该作者
确保 libargus.a 真的在 Src/ 目录下,可以手动检查一下路径,或者在终端里 ls C:/Users/.../Src/libargus.a 试试看。

使用特权

评论回复
17
童雨竹| | 2025-3-21 08:13 | 只看该作者
看起来你的路径里有空格,试试在路径前后加引号,比如 -L"C:/Users/.../Src/",有时候空格会导致解析错误。

使用特权

评论回复
18
万图| | 2025-3-21 08:14 | 只看该作者
也可以在 makefile 里直接修改 LDFLAGS,手动添加 -L C:/Users/.../Src/ -largus,然后重新编译。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

15

帖子

0

粉丝