【发布时间】:2012-08-31 14:34:45
【问题描述】:
我正在 ST ARM-Cortex-M3 上开发裸机 C 应用程序。我还开发了可用于所有这些应用程序的库。
我曾经使用 Keil ARM-MDK,但想改用 GNU-GCC。因此,我下载了最新版本的 GCC 并开始重新编译代码。
虽然已经回答了与此类似的问题,但它并没有解决我的问题,因此我发布了我的问题。
我有以下问题: Lib_Flash 有一个函数 Read_Flash()。 Lib_AppCfg 在 Lib_Flash 中链接,因为它使用 Read_Flash()。 我的应用程序(App)链接在 Lib_Flash 和 Lib_AppCfg 中。应用程序还使用 Read_Flash() 进行一些特定的 FLASH 检查。 在 Keil MDK-ARM 中它运行良好。 使用 GCC,在构建使用 Lib_AppCfg 的函数时,我收到错误消息,指出 Read_Flash() 是“未定义的引用”。 我不确定问题出在哪里。是在构建Lib_Appcfg的链接还是我链接App时的问题?
请指教。如果您需要更多信息,请告诉我。
【问题讨论】:
-
这是一个链接错误。你能告诉我们你的编译命令吗?
-
您是否尝试重复
Lib_Flash库,如gcc app.c -o app -lFlash -lAppCfg - lFlash中的? -
@AlexandreC.:GNU 链接器可以使用分组选项更智能地做到这一点 - 请参阅我的答案。那就是说您的“评论”是一个答案而不是对该问题的评论,为什么不将其作为一个发布呢?
标签: c gcc embedded arm static-libraries