[STM32U5] 无法将现有代码(库)添加到项目中。

[复制链接]
 楼主| WHALEE 发表于 2025-3-17 22:00 | 显示全部楼层 |阅读模式
我将包含 .cpp 和 .h 文件的库文件夹复制粘贴到项目根文件夹,并将路径添加到 GCC 和 G++ 编译器设置中的 Include Paths。但是,当建项目时,收到“undefined reference error”。用C++库,已将 main.c 更改为 main.cpp。请教,咋搞?
Clyde011 发表于 2025-3-18 08:23 | 显示全部楼层
你可以尝试手动清理和重新生成整个项目,有时候旧的编译文件会导致链接错误。
公羊子丹 发表于 2025-3-18 08:24 | 显示全部楼层
确保在编译器的 C++ 设置中添加了正确的 Linker 设置,undefined reference error 通常是链接时找不到符号,检查下是否正确链接了库文件。
周半梅 发表于 2025-3-18 08:25 | 显示全部楼层
你是否已经在 main.cpp 文件中包含了相关的头文件?有时即使路径添加了,编译器还是找不到正确的文件,需要确保文件引用正确。
帛灿灿 发表于 2025-3-18 08:27 | 显示全部楼层
检查下是否正确使用了 extern "C" 来防止 C++ 的名字修饰,尤其是如果你调用的是 C 语言库时,C++ 会对函数名做修改。
童雨竹 发表于 2025-3-18 08:28 | 显示全部楼层
如果你使用的是 C++ 库,确保在链接器的设置中加入了 .a 或 .lib 文件,链接器才能正确找到函数实现。
万图 发表于 2025-3-18 08:29 | 显示全部楼层
你改了 main.c 为 main.cpp,但也要确保其他 .c 文件中没有 C++ 代码,或者需要重新编译这些文件成 C++ 格式。
Bblythe 发表于 2025-3-18 08:31 | 显示全部楼层
在添加头文件路径后,重新检查下是否包含了正确的库文件,确保库路径和文件名正确无误。
Wordsworth 发表于 2025-3-18 08:33 | 显示全部楼层
确认一下你项目的编译选项,是否将 C++ 编译器(g++)用于所有需要 C++ 编译的文件,而不是仅仅在 main.cpp 中使用。
Pulitzer 发表于 2025-3-18 08:35 | 显示全部楼层
如果你使用的是第三方库,确认该库是为 C++ 环境编译的,或者是否提供了 C 语言兼容版本的库。
Uriah 发表于 2025-3-18 08:37 | 显示全部楼层
检查一下库文件的链接顺序,GCC 和 G++ 对库文件的链接顺序有要求,确保你的库文件按照正确的顺序添加到链接器中。
probedog 发表于 2025-3-18 11:32 | 显示全部楼层
清理构建目录,然后从头开始重新构建试试。
laocuo1142 发表于 2025-3-18 13:56 | 显示全部楼层
检查函数和变量的声明与定义。
flycamelaaa 发表于 2025-3-18 15:00 | 显示全部楼层
检查链接顺序,如果你的库依赖于其他库,先链接被依赖的库。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

40

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部