打印
[STM32U5]

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

[复制链接]
245|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 文件中包含了相关的头文件?有时即使路径添加了,编译器还是找不到正确的文件,需要确保文件引用正确。

使用特权

评论回复
5
帛灿灿| | 2025-3-18 08:27 | 只看该作者
检查下是否正确使用了 extern "C" 来防止 C++ 的名字修饰,尤其是如果你调用的是 C 语言库时,C++ 会对函数名做修改。

使用特权

评论回复
6
童雨竹| | 2025-3-18 08:28 | 只看该作者
如果你使用的是 C++ 库,确保在链接器的设置中加入了 .a 或 .lib 文件,链接器才能正确找到函数实现。

使用特权

评论回复
7
万图| | 2025-3-18 08:29 | 只看该作者
你改了 main.c 为 main.cpp,但也要确保其他 .c 文件中没有 C++ 代码,或者需要重新编译这些文件成 C++ 格式。

使用特权

评论回复
8
Bblythe| | 2025-3-18 08:31 | 只看该作者
在添加头文件路径后,重新检查下是否包含了正确的库文件,确保库路径和文件名正确无误。

使用特权

评论回复
9
Wordsworth| | 2025-3-18 08:33 | 只看该作者
确认一下你项目的编译选项,是否将 C++ 编译器(g++)用于所有需要 C++ 编译的文件,而不是仅仅在 main.cpp 中使用。

使用特权

评论回复
10
Pulitzer| | 2025-3-18 08:35 | 只看该作者
如果你使用的是第三方库,确认该库是为 C++ 环境编译的,或者是否提供了 C 语言兼容版本的库。

使用特权

评论回复
11
Uriah| | 2025-3-18 08:37 | 只看该作者
检查一下库文件的链接顺序,GCC 和 G++ 对库文件的链接顺序有要求,确保你的库文件按照正确的顺序添加到链接器中。

使用特权

评论回复
12
probedog| | 2025-3-18 11:32 | 只看该作者
清理构建目录,然后从头开始重新构建试试。

使用特权

评论回复
13
laocuo1142| | 2025-3-18 13:56 | 只看该作者
检查函数和变量的声明与定义。

使用特权

评论回复
14
flycamelaaa| | 2025-3-18 15:00 | 只看该作者
检查链接顺序,如果你的库依赖于其他库,先链接被依赖的库。

使用特权

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

本版积分规则

9

主题

9

帖子

0

粉丝